Android顶级进程CPU使用率高于用户和系统使用量的总和

时间:2014-12-04 08:37:06

标签: android process system cpu-usage top-command

我正在尝试使用我的Android手机中的top命令监控CPU使用情况,使用以下命令:

Process p = Runtime.getRuntime().exec("top -m 15 -d 1 -n 1");

我得到的最高命令的输出之一是:

User 2%, System 9%, IOW 0%, IRQ 0%
User 3 + Nice 0 + Sys 10 + Idle 95 + IOW 0 + IRQ 0 + SIRQ 0 = 108

PID    PR    CPU%    S     #THR     VSS     RSS    PCY      UID     Name
743     0     15%    R        1    2416K    948K    bg    u0_a692   top
15351   0      2%    S       79 1921396K 114536K    bg    u0_a59    com.google.android.googlequicksearchbox:search
167     0      1%    S        6   9668K   3512K     logd            /system/bin/logd
496     0      0%    S        1      0K      0K     root            kworker/0:3
20447   0      0%    S        1      0K      0K     root            kworker/u:34

我使用的是具有四核芯片即4个CPU的Nexus 4

这里的总CPU使用率(直观地)是用户+系统= 11%。但是,top进程本身占用CPU的15%。大部分时间都会发生这种情况。这是我用1s间隔运行top命令绘制的图表。 enter image description here

在大多数情况下,top命令使用的CPU比用户和系统CPU使用量多。

导致这种行为的原因是什么?

我想计算在空闲睡眠状态下使用多少CPU。所以,我想从用户和系统的CPU使用量中减去top进程使用的CPU。但是,拥有这些输出无法帮助我确定手机正在使用多少CPU。

另外,进程的CPU%是用户和系统的总和吗?即如果一个进程正在使用10%的CPU,它实际上是使用6%用户和4%系统CPU吗?

0 个答案:

没有答案