【问题标题】:Processor usage [duplicate]处理器使用情况[重复]
【发布时间】:2011-05-07 06:13:43
【问题描述】:

可能重复:
CPU Usage using WMI & C#

如何使用 WMI 在 C# (.NET) 中检索 CPU 使用率?是的,没有任何愚蠢的 PerformanceCounter。

【问题讨论】:

  • 为什么 PerformanceCounter 是愚蠢的?如果您能解释为什么 this 不合适,将会有所帮助。
  • 您可以使用 cpu 使用率 性能计数器,而不是使用 stupid 性能计数器。它会给你更好的结果。

标签: c# .net performance wmi processor


【解决方案1】:

PerformanceCounter 是一种非常低成本检索此信息的方法。与 WMI 不同,WMI 会为您提供确切相同的信息,但会产生大量开销,因为它运行在 COM 之上。

它和 PC 有完全相同的问题,这就是为什么我猜你认为它是“愚蠢的”。 CPU 使用百分比是在一段时间内测量的。实际 CPU 使用率为 0 或 100%,CPU 永远不会故意以较低的速率运行。当有一个线程有工作要做时,它会全速运行代码。如果没有工作要做,你的台式机的正常状态,那么 CPU 用 HLT 指令断电。它被时钟中断再次唤醒。

TaskMgr 或 Permon 中显示的 CPU 使用百分比是超过一秒的计算值。以 100% 运行的时间量与关闭时间量的比率。间隔长度非常很重要。你做的越短,计算的值就越“跳跃”。连续调用 NextValue() 两次,您将始终获得 100%。

长话短说:您需要一个计时器。花一秒钟时间模拟您在 PerfMon 和 TaskMgr 中看到的内容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-15
    • 2023-01-10
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多