top
通过top命令查看进程信息
通过adb shell top -h查看其使用方法
130|root@sp9820e_1h10:/ # top -hUsage: 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.-s col Column to sort by (cpu,vss,rss,thr).-tShow threads instead of processes.-hDisplay this help screen.root@sp9820e_1h10:/ #
下面是对其参数说明
如何分析CPU性能
查看最前面5个进程的使用情况
top -m 5
User 55%, System 35%, IOW 0%, IRQ 0%User 339 + Nice 4 + Sys 219 + Idle 57 + IOW 0 + IRQ 0 + SIRQ 1 = 620PID PR CPU% S #THRVSSRSS PCY UIDName8422 1 39% S 47 408528K 27404K fg system com.text.camera8482 1 13% S 79 162120K 19608K fg media /system/bin/mediaserver870 1 10% S 61 439168K 57004K fg u0_a12 com.txznet.txz224 0 5% R 17 34220K 5212K fg system /system/bin/surfaceflinger633 1 5% S 100 444992K 28336K fg system system_server
系统的总的统计信息说明
User : 用户进程的使用率System : 系统进程的使用率Nice : 优先值为负的进程所占用的CPU时间IOW : IO wait的等待时间IRQ : 硬中断时间SIRQ : 软中断的含义Idle : 除IOW以外的系统闲置时间
每个进程的描述说明
PID : 进程IDUSER(UID) : 进程所有者的IDPR : 进程优先级CPU% : CPU占用率。S : 进程状态 D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程#THR : 程序当前所用的线程数VSS : Virtual Set Size 虚拟内存RSS : Resident Set Size 实际使用的物理内存PCY : 线程调度策略Name : 进程名字
1、iow 过高,是因为发生了大量的块设备读写
2、kswap0程序是内核进程,内核会定期调用kswap0,但当系统内存紧张,kswap0进程会一直占用CPU。首先说内存紧张,业务复杂,内存一直很少,可能会反应慢,但是这里导致卡顿的原因还是在于IOW过高