0
我有以下代码:的PerformanceCounter报告werid CPU使用率值
PerformanceCounter cpuCounter = new PerformanceCounter("Process", "% Processor Time", "_Total");
float Percent = cpuCounter.NextValue();
Console.WriteLine("Sampling CPU Usage " + Percent);
Thread.Sleep(1000);
Percent = cpuCounter.NextValue();
Console.WriteLine("Sampling CPU Usage " + Percent);
Percent = cpuCounter.NextValue();
Console.WriteLine("Sampling CPU Usage " + Percent);
和输出我得到的是:
Sampling CPU Usage 0
Sampling CPU Usage 396
Sampling CPU Usage 405
现在是我有2个物理核心,所以我可以除以2,但在另一台机器上,我看到了正确的百分比。另外,“rawvalue”显示为2020334375000
这是至关重要的,你等的时间够长调用NextValue前()。处理器只能关闭或以全通径运行。因此,柜台所能做的就是衡量它自上次被叫以来的运行时间和运行时间。不这样做会产生奇怪的值。一点都不现实,因为现代处理器不再以可预测的速度运行。它们具有“涡轮增压”功能,只要芯片温度足够低,就有意超频处理器。计数器补偿了这一点。 –