Сниппет нагрузки процессора и оперативки

  • Автор темы Автор темы DmitryiAsp
  • Дата начала Дата начала

DmitryiAsp

Client
Регистрация
24.08.2016
Сообщения
90
Реакции
6
Баллы
8
Доброго дня.
Требуется сниппет, который фиксирует нагрузку на процессор и оперативную память в % от 100. Сниппет должен сохранять данные в соответствующие переменные.
 
Процессор , Свой C# код

C#:
Развернуть Свернуть Копировать
var cpu = new System.Diagnostics.PerformanceCounter("Processor", "% Processor Time", "_Total");
int usage = (int) cpu.NextValue();
while (usage == 0 || usage > 80)
{
     Thread.Sleep(250);
     return (int)cpu.NextValue();
}
 
43112


CPU:
C#:
Развернуть Свернуть Копировать
var searcher = new System.Management.ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfOS_Processor");
var cpuUsage = searcher.Get()
    .Cast<System.Management.ManagementObject>()
    .Select(mo => new
    {
        Name = mo["Name"],
        Usage = mo["PercentProcessorTime"]
    }
    ).ToArray();
return (ulong) cpuUsage[0].Usage;

RAM:
C#:
Развернуть Свернуть Копировать
System.Management.ManagementObjectSearcher searcher = new System.Management.ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem");
var ramUsage = searcher.Get().Cast<System.Management.ManagementObject>().Select(m=>new
{
    TotalVisibleMemorySize = m["TotalVisibleMemorySize"],
    FreeMemory = m["FreePhysicalMemory"]
}).FirstOrDefault();
if (ramUsage == null)
{
    throw new Exception("Can't recive informacion about memory usage.");
}
var freeRam = (ulong) ramUsage.FreeMemory;
var totalRam = (ulong) ramUsage.TotalVisibleMemorySize;
return Math.Round((totalRam - freeRam)/(float)totalRam * 100);
 
  • Спасибо
Реакции: daymos и Astraport

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)