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

DmitryiAsp

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

zombie

Client
Регистрация
14.08.2012
Сообщения
480
Благодарностей
119
Баллы
43
Процессор , Свой 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();
}
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
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

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