我想测量每个处理器的CPU使用率。
当我运行以下程序时,我得到实例名称2
,3
,0
,1
和_Total
。我想我应该0
,1
,0,_Total
,1,_Total
。
结果意味着什么?如何获得每个处理器的总CPU使用率。不是每个核心?
class PerfMonitor
{
static void Main()
{
var pc = new PerformanceCounter("Processor", "% Processor Time");
var cat = new PerformanceCounterCategory("Processor");
var instances = cat.GetInstanceNames();
foreach (var s in instances)
{
pc.InstanceName = s;
Console.WriteLine("instance name is {0}", s);
}
}
}
答案 0 :(得分:1)
结果意味着什么?
你的结果是:
instance name is 2
instance name is 3
instance name is 0
instance name is 1
instance name is 6
instance name is 7
instance name is 4
instance name is 5
instance name is _Total
每个实例都是处理器的逻辑ID(包括超V逻辑的),除了最后一个是系统上所有处理器的累积实例。
答案 1 :(得分:0)
由于Windows将内核视为处理器,因此这不是一件容易的事。你可以先尝试determine the number of physical CPUs,但这很痛苦。
答案 2 :(得分:0)
下载OpenHardwareMonitor,它是开源的,包含一个可用于执行此操作的DLL