我正在开发一个程序,该程序显示在装有Linux的计算机上运行的每个进程的百分比。问题是我得到的百分比通常与top命令显示的百分比不同。

我在网上搜索了许多小时,但发现几乎总是相同的公式

100 * (stime + utime)/ (totalCPUTime - processStartTime)

我得到totalCPUTime,将/proc/stat中的7个CPU值相加,而stimeutimeprocessStartTime是采用/proc/<pid>/stat形式的值。
难道我做错了什么?
我在多核计算机上运行程序的事实是否会以某种方式影响结果?

somone知道最高层如何计算此值吗?

谢谢

最佳答案

如果您想知道什么顶部,请查看源代码:)

top.c cvs repository

procps Homepage

08-03 23:50