android 进程监控 top

Android N 及之前

adb shell 

$ top -h 

Usage: top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h] 

-m num  Maximum number of processes to display. // 最多显示多少个进程 

-n num  Updates to show before exiting. // 刷新次数 

-d num  Seconds to wait between updates. // 刷新间隔时间(默认5秒) 

-s col  Column to sort by <cpu,vss,rss,thr> // 按哪列排序 

-t      Show threads instead of processes. // 显示线程信息而不是进程 

-h      Display this help screen. // 显示帮助文

结果表述如下:

// CPU占用率:User 用户进程;System 系统进程;IOW IO等待时间;IRQ 硬中断时间
User 35%, System 13%, IOW 0%, IRQ 0% 

// CPU使用情况:
//User    处于用户态的运行时间,不包含优先值为负进程
//Nice    优先值为负的进程所占用的CPU时间
//Sys 处于核心态的运行时间
//Idle    除IO等待时间以外的其它等待时间 
//IOW IO等待时间
//IRQ 硬中断时间
//SIRQ    软中断时间
User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306  

// 进程属性:
//PID 进程在系统中的ID
//CPU%    当前瞬时所以使用CPU占用率
//S   进程的状态,其中S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值是负数。
//#THR    程序当前所用的线程数
//VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)
//RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)
//PCY Policy 系统对这个进程/线程的调度策略,bg 后台;fg 前台
//UID 运行当前进程的用户id
//
PID CPU% S #THR VSS RSS PCY UID Name

xx  xx% x   xx  xx  xx  xx  xx   xx

ps:

内存占用大小有如下规律:VSS >= RSS >= PSS >= USS

VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存)

RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存)

PSS Proportional Set Size 实际使用的物理内存(比例分配共享库占用的内存)

USS Unique Set Size 进程独自占用的物理内存(不包含共享库占用的内存)

参考:https://blog.csdn.net/hugohong/article/details/24324249

实例

NX608J:/ $ top -m 5 //显示最cpu最高的5个进程
User 0%, System 8%, IOW 0%, IRQ 0%
User 4 + Nice 0 + Sys 39 + Idle 413 + IOW 0 + IRQ 0 + SIRQ 0 = 456

PID USER     PR  NI CPU% S  #THR     VSS     RSS PCY Name
11389 shell    20   0   7% R     1   9288K   2040K  fg top
570 system   -2  -8   1% S    13 165428K  24376K  fg /system/bin/surfaceflinger
68 root     20   0   0% S     1      0K      0K  fg rcuop/6
4176 u0_a12   20   0   0% S    57 1866432K 182304K  fg com.android.systemui
710 root     20   0   0% S     1      0K      0K  fg kworker/u16:11

130|NX608J:/ $ top -m 5 -t //显示最cpu最高的5个进程及其当前线程
User 1%, System 9%, IOW 0%, IRQ 0%
User 8 + Nice 0 + Sys 77 + Idle 694 + IOW 0 + IRQ 0 + SIRQ 0 = 779

PID   TID USER     PR  NI CPU% S     VSS     RSS PCY Thread          Proc
11405 11405 shell    20   0   8% R   9288K   2832K  fg top             top
570   570 system   -2  -8   0% S 154420K  24496K  fg surfaceflinger  /system/bin/surfaceflinger
4176  4176 u0_a12   20   0   0% S 1856572K 181540K  fg ndroid.systemui com.android.systemui
77    77 root     20   0   0% S      0K      0K  fg rcuop/7
570  2124 system   20   0   0% S 154420K  24496K  fg Binder:570_5    /system/bin/surfaceflinger

130|NX608J:/ $ top -m 5 -t > /data/topinfo.txt //将cpu信息保存到文件
//需求root 并给topinfo.txt 权限:chmod 777 data/topinfo.txt
adb pull /data/topinfo.txt

Android O 及之后

1|NX611J:/ $ top --help
usage: top [-Hbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,]

Show process activity in real time.

-H      Show threads
-k      Fallback sort FIELDS (default -S,-%CPU,-ETIME,-PID)
-o      Show FIELDS (def PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE)
-O      Add FIELDS (replacing PR,NI,VIRT,RES,SHR,S from default)
-s      Sort by field number (1-X, default 9)
-b      Batch mode (no tty)
-d      Delay SECONDS between each cycle (default 3)
-n      Exit after NUMBER iterations
-p      Show these PIDs
-u      Show these USERs
-q      Quiet (no header lines)

Cursor LEFT/RIGHT to change sort, UP/DOWN move list, space to force
update, R to reverse sort, Q to exit.

实例

130|NX611J:/ $ top -H
Tasks: 2285 total,   2 running,2277 sleeping,   0 stopped,   0 zombie //进程数(Tasks)

Mem:   3833208k total,  3301908k used,   531300k free,     9716k buffers //内存使用信息

Swap:        0k total,        0k used,        0k free,  1738436k cached //交换区使用信息

800%cpu  20%user   0%nice  52%sys 726%idle   0%iow   2%irq   0%sirq   0%host //cpu使用信息

 PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ THREAD          PROCESS

8367 shell        20   0  13M 4.0M 1.5M R 44.0   0.1   0:00.27 top             top
808 system       -2  -8  72M  25M  17M S 12.0   0.6  27:55.68 surfaceflinger  surfaceflinger
2006 u0_a10       20   0 4.3G 176M  85M S  6.0   4.7  20:15.73 ndroid.systemui com.android.systemui
779 system       -3  -8  33M 8.0M 4.7M S  4.0   0.2   1:41.94 composer@2.1-se android.hardware.graphics.composer@2.1-service
8243 root         20   0    0    0    0 S  2.0   0.0   0:03.94 kworker/u16:11  [kworker/u16:11]
8174 root         20   0    0    0    0 S  2.0   0.0   0:09.81 kworker/u16:7   [kworker/u16:7]
8167 root         RT   0    0    0    0 D  2.0   0.0   0:10.62 mdss_fb0        [mdss_fb0]
8051 root         20   0    0    0    0 S  2.0   0.0   0:23.15 kworker/u16:20  [kworker/u16:20]
1296 system       20   0 4.3G 179M 127M S  2.0   4.7   0:03.32 Binder:1296_13  system_server
779 system       -3  -8  33M 8.0M 4.7M S  2.0   0.2   0:37.77 HwBinder:779_2  android.hardware.graphics.composer@2.1-service

RES:表示进程所用物理内存大小(单位:KB) 
%MEM:表示内存使用百分比(单位:KB)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值