如何计算CPU使用率?

Fre*_*ool 3 windows cpu-usage

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

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

或者是别的什么?

Mit*_*ers 8

我不是100%确定使用什么,但我认为你的CPU计算有点偏.

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

Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)
Run Code Online (Sandbox Code Playgroud)

我相信它与任务管理器中设置的"更新间隔"相关联.

在为您做一些研究的同时,虽然我发现这篇MSDN文章显示了微软推荐的计算一组指令的CPU时间的方法,但这也可能指向您的计算.


Jon*_*eet 6

不,它不是"自启动时间" - 它比时间敏感得多.

它是"自上次刷新以来CPU在该进程中主动运行线程的时间比例".(刷新率通常约为一秒.)在任务管理器中我相信它除以CPU的数量,因此总数最终为100%(即在双核机器上,单线程CPU猪将显示为50%).其他类似程序有时不这样做,总共提供100%*核心.