题
Windows任务管理器以百分比显示CPU使用率。这背后的公式是什么?是这样的:
进程A的CPU使用率%=(总和) 所有时间片给A到现在)/ 自机器启动以来的总时间
还是别的什么?
解决方案
我不是100%确定使用的是什么,但我认为你的CPU计算有点不对。
我相信他们正在做类似的事情。
Process A CPU Usage = (Cycles for A over last X seconds)/(Total cycles for last X seconds)
我认为它与“更新间隔”有关。在任务管理器中设置。
虽然我找到了,但为你做了一些研究。这篇MSDN 文章显示了微软推荐的计算一组指令的CPU时间的方法,这也可能指向你的计算。
其他提示
不,它不是“自启动时间”以来 - 它比时间敏感得多。
它是“自上次刷新以来CPU在该过程中主动运行线程的时间比例”。 (刷新率通常约为一秒。)在任务管理器中我相信它除以CPU的数量,因此总数最终为100%(即在双核机器上,单线程CPU猪将显示为50%)。其他类似的程序有时不这样做,总共提供100%*核心。
您可能还想查看这篇文章作为Vista的一部分,改变了关于调度处理CPU周期的方式。我认为这也适用于Win7。
请参阅任务管理器的源代码
不隶属于 StackOverflow