PerformanceCounter报告的CPU使用率高于;s

本文关键字:高于 使用率 CPU 报告 PerformanceCounter | 更新日期: 2023-09-27 18:00:53

我目前正在做这件事:

PerformanceCounter cpuUsage = new PerformanceCounter("Processor", "% Processor Time", "_Total");
cpuUsage.NextValue();
System.Threading.Thread.Sleep(1000);
RV = cpuUsage.NextValue();

我定期调用该函数以获取CPU使用情况。当我在TaskManager中监视系统时,PerformanceCounter报告的CPU使用率始终比TaskManager报告的高15-20%(TaskManager中的30%=PerformanceCounter的50%(。

也许有些文件我忽略了,但有人能解释吗?也许它检查时的CPU使用率更高,任务管理器报告的是平均值?

PerformanceCounter报告的CPU使用率高于;s

  new PerformanceCounter("Processor", ...);

如果您坚持要看到与任务管理器或Perfmon完全匹配,则使用了错误的计数器。使用"处理器信息"而不是"处理器"。这些计数器显示不同值的原因在这篇博客文章中得到了很好的解决。哪个计数器是"正确的"是一个我不想用十英尺长的杆子碰的问题:(

在接受答案方面运气不佳,所以添加我的评论作为答案,希望能帮助人们更好地通过在线搜索找到答案。

var counter = new PerformanceCounter("Processor Information", "% Processor Utility", "_Total");