htop CPU使用率计算

时间:2018-12-03 08:44:14

标签: macos unix operating-system cpu htop

关于StackOverflow的第一篇文章。我想知道htop如何计算达尔文(MacOSX)的CPU使用率。

我遍历了源代码,这就是我从中推论得出的:

  1. 计算所有内核上的总CPU负载(否则称为GlobalDiff)

    全局差异=时间T2时所有内核和CPU状态的CPU总负载-时间T1时所有内核和CPU状态的CPU总负载

CPU状态= 用户时间,系统时间,尼斯时间和空闲时间。 我的机器的核心= 0-7

由于此值Global Diff是整个系统的TOTAL值,因此我们需要获取每个内核的CPU使用率,可以通过以下公式获得该值:

PerCore CPU Total Load = GlobalDiff / NoOfCores.
  1. 计算每个进程的CPU总负载。

差异增量=(UserTime2 + SystemTime2)-(UserTime1 + SystemTime1)

    CPU % = DeltaDiff / PerCoreCPU Total Load
=>  CPU % (unscaled) = (DeltaDiff * NoOfCores)/(PerCoreCPU Total Load)
  1. 最后:

    CPU%(缩放到100%)= CPU%(未缩放)/ 100000.0

任何人都可以告诉我上述声明的重要性。是否将未缩放的CPU%除以(TH_USAGE_SCALE * 100)。 我已经搜索了一段时间,但找不到关于重要性TH_USAGE_SCALE的文档。

https://github.com/hishamhm/htop/blob/master/darwin/DarwinProcess.c

这是我获得大部分代码的地方。请告知。

谢谢。

0 个答案:

没有答案