Search code examples
androidmemory-managementcpu-usagetop-command

Descrip "top" command in Android


I'm making a small Android application to show current total CPU usage like tab Performance in Windows Task Manager. I use "top -m 1 -n 1 -d 1" to get CPU usage, but i do not really understand the result of "top".

The result like:

User 5%, system 15%, IOW 0%, IRQ 0%
User 5 + Nice 0 + Sys 14 + Idle 73 + IOW 0 + IRQ 0 + SIRQ 0 = 92
PID     CPU%  S   #THR    VSS    RSS    UID     Name
213     11%   R    1      900K   340K   app_16   top

CPU usage = ??? How can i calculated total CPU usage?


Solution

  • The accepted answer for this question is incorrect. The second line of the output is the number of threads/processes that are launched in that grouping. Your CPU usage is 20% in the above. 5% of that is from user apps and 15% from system apps. You have 73 idle threads, 14 system threads, and 5 user threads (according to the second line).

    for instance, here is a current top snapshot for my Droid.

    User 6%, System 5%, IOW 0%, IRQ 0%
    User 21 + Nice 0 + Sys 16 + Idle 270 + IOW 0 + IRQ 3 + SIRQ 0 = 310
    
      PID CPU% S  #THR     VSS     RSS PCY UID      Name
    30994   4% S    19 134912K  24140K  bg app_24   edu.vu.isis.ammo.spotreport
     1021   3% S    57 217400K  58504K  fg system   system_server
    20911   2% R     1    880K    400K  fg shell    top
     1053   0% S     1      0K      0K  fg root     tiwlan_wq
      995   0% S     2   1272K    128K  fg compass  /system/bin/akmd2
    

    According to the accepted answer, I would have 310% CPU usage, when this is actually just the number of threads. I am pretty sure I am actually using only 11% of the CPU, where the top 3 processes are using 9% of that total.