【发布时间】:2011-05-07 06:13:43
【问题描述】:
【问题讨论】:
-
为什么 PerformanceCounter 是愚蠢的?如果您能解释为什么 this 不合适,将会有所帮助。
-
您可以使用 cpu 使用率 性能计数器,而不是使用 stupid 性能计数器。它会给你更好的结果。
标签: c# .net performance wmi processor
【问题讨论】:
标签: c# .net performance wmi processor
PerformanceCounter 是一种非常低成本检索此信息的方法。与 WMI 不同,WMI 会为您提供确切相同的信息,但会产生大量开销,因为它运行在 COM 之上。
它和 PC 有完全相同的问题,这就是为什么我猜你认为它是“愚蠢的”。 CPU 使用百分比是在一段时间内测量的。实际 CPU 使用率为 0 或 100%,CPU 永远不会故意以较低的速率运行。当有一个线程有工作要做时,它会全速运行代码。如果没有工作要做,你的台式机的正常状态,那么 CPU 用 HLT 指令断电。它被时钟中断再次唤醒。
TaskMgr 或 Permon 中显示的 CPU 使用百分比是超过一秒的计算值。以 100% 运行的时间量与关闭时间量的比率。间隔长度非常很重要。你做的越短,计算的值就越“跳跃”。连续调用 NextValue() 两次,您将始终获得 100%。
长话短说:您需要一个计时器。花一秒钟时间模拟您在 PerfMon 和 TaskMgr 中看到的内容。
【讨论】: