代码之家  ›  专栏  ›  技术社区  ›  G S

如何计算CPU使用率?

  •  3
  • G S  · 技术社区  · 16 年前

    Windows任务管理器以百分比显示CPU使用率。这背后的公式是什么?是这样的:

    %进程A的CPU使用率=(的和 给a的所有时间片)/ 自机器启动以来的总时间

    还是别的什么?

    4 回复  |  直到 13 年前
        1
  •  8
  •   Mitchel Sellers    16 年前

    我不能百分之百地确定它的用途,但我认为你在CPU计算上有点跑题。

    我相信他们在做类似的事情。

    Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)
    

    我相信它与任务管理器中设置的“更新间隔”有关。

    尽管我发现 this MSDN 本文展示了微软推荐的一种计算一组指令的CPU时间的方法,这可能会让您对它们的计算有点了解。

        2
  •  6
  •   Jon Skeet    16 年前

    不,它不是“自启动时起”——它对时间的敏感度远高于此。

    这是“自上次刷新以来,CPU在该进程中活动运行线程的时间比例”。(刷新率通常约为一秒钟。)在任务管理器中,我相信它会除以CPU的数量,所以最终总计为100%(即在双核机器上,单线程CPU占用率将显示为50%)。其他类似的程序有时不这样做,总共提供100%的内核。

        3
  •  1
  •   Brian Rasmussen    16 年前

    你也可以查一下 this article 因为处理与调度有关的CPU周期的方式作为Vista的一部分被改变了。我想这也适用于Win7。

        4
  •  -1
  •   Cal    16 年前

    见任务管理器源代码