WMI 查询 - CPU LoadPercentage

标签 wmi wmi-query

我正在寻找一种更好的方法来获得来自多个系统的 WMI 的 CPU 负载百分比(意味着不同的 CPU 等)。
我的代码正在运行,但我认为有一种更好的方法可以按百分比计算所有 CPU 使用率。

有任何想法吗?

先感谢您!

SelectQuery queryCpuUsage = new SelectQuery("SELECT * FROM Win32_Processor");
ManagementObjectSearcher cpuUsage = new ManagementObjectSearcher(scope, queryCpuUsage);                                       
ManagementObjectCollection cpuUsageCollection = cpuUsage.Get();                                                       

foreach (ManagementObject queryObj in cpuUsageCollection)
{                                           
iCPU++;
calcCPU = Convert.ToInt32(queryObj["LoadPercentage"]);
perCPU = perCPU + calcCPU;
}

perCPU = perCPU / iCPU;

cpuUsageCollection.Dispose();

Console.WriteLine("LoadPercentage CPU: {0}", perCPU);

最佳答案

我个人会选择 Win32_PerfRawData_PerfOS_Processor类,因为它更精确。您将需要同时查询 PercentProcessorTime TimeStamp_Sys100NS . Here你可以找到确切的公式。

关于WMI 查询 - CPU LoadPercentage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9598730/

相关文章:

wmi - 如何将 WMI 查询的所有行导出到文件?

sql - ManagementObjectSearcher 查询值从何而来? (WMI)

c# - 一些常见的 WMI 查询是什么

c# - 磁盘驱动器签名是唯一的吗?

python - 如何使用 python Hook Windows 中的事件/消息

javascript - 是否可以使用 node.js 获取已安装的 Windows 更新的列表?

c# - WMI - 从 Win32_Product 中选择需要很长时间

java - 无法使用 jinterop 打开 dcom session

java - 更好的性能: WMI vs SNMP?

powershell - powershell卸载多个应用程序?