2

我想测量每个处理器的 cpu 使用率。

当我运行以下程序时,我得到实例名称2、、、、和。我想我应该得到, , , .301_Total010,_Total1,_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);
        }
    }
}
4

3 回答 3

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 逻辑 ID)。

于 2013-01-10T19:31:48.250 回答
0

由于 Windows 将内核视为处理器,因此这不是一件容易的事。您可能首先尝试确定物理 CPU 的数量,但这很痛苦。

于 2013-01-10T19:25:01.550 回答
0

下载 OpenHardwareMonitor,它是开源的,包含一个 dll,您可以使用它来执行此操作

于 2013-02-22T01:30:21.303 回答