top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序.
一、介绍
top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序.
常用命令:
1.查看top帮助
>adb shell top --h
>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. 显示帮助文档
2.adb shell top
PS C:\Users\1O1A> adb shell top User 14%, System 4%, IOW 0%, IRQ 1% User 177 + Nice 0 + Sys 57 + Idle 981 + IOW 3 + IRQ 20 + SIRQ 2 = 1240 PID PR CPU% S #THR VSS RSS PCY UID Name 510 6 3% S 15 150028K 8556K fg system /system/bin/surfaceflinger 23044 4 2% S 95 1858988K 96344K fg u0_a144 com.doctopia.zeroe:pushcore 8596 5 2% S 130 1960692K 161764K bg u0_a50 com.android.browser 3576 7 1% S 34 1707992K 119240K fg system com.android.systemui 27335 4 1% R 1 6536K 1420K fg shell top
第一组数据的含义:
User 处于用户态的运行时间,不包含优先值为负进程
Nice 优先值为负的进程所占用的CPU时间
Sys 处于核心态的运行时间
Idle 除IO等待时间以外的其它等待时间
IOW IO等待时间
IRQ 硬中断时间
SIRQ 软中断时间
第二组数据的含义:
PID 进程id PR 优先级 CPU% 当前瞬时CPU占用率 S 进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程 #THR 程序当前所用的线程数 VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存) PCY 调度策略优先级,SP_BACKGROUND/SP_FOREGROUND UID 进程所有者的用户id Name 进程的名称
二、监控CPU实战
1.描述:每隔 1s 输出一次APP CPU信息,命令如下:
$adb shell
$adb top -d 1 | grep com.doctopia.zeroe
返回如下图:
数据含义:
PID 进程id PR 优先级 CPU% 当前瞬时CPU占用率 S 进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程 #THR 程序当前所用的线程数 VSS Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS Resident Set Size 实际使用物理内存(包含共享库占用的内存) PCY 调度策略优先级,SP_BACKGROUND/SP_FOREGROUND UID 进程所有者的用户id Name 进程的名称