top
通过top命令查看进程信息
通过adb shell top -h查看其使用方法
130|root@sp9820e_1h10:/ # 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.
-s col Column to sort by (cpu,vss,rss,thr).
-t Show threads instead of processes.
-h Display 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 = 620
PID PR CPU% S #THR VSS RSS PCY UID Name
8422 1 39% S 47 408528K 27404K fg system com.text.camera
8482 1 13% S 79 162120K 19608K fg media /system/bin/mediaserver
870 1 10% S 61 439168K 57004K fg u0_a12 com.txznet.txz
224 0 5% R 17 34220K 5212K fg system /system/bin/surfaceflinger
633 1 5% S 100 444992K 28336K fg system system_server
系统的总的统计信息说明
- User : 用户进程的使用率
- System : 系统进程的使用率
- Nice : 优先值为负的进程所占用的CPU时间
- IOW : IO wait的等待时间
- IRQ : 硬中断时间
- SIRQ : 软中断的含义
- Idle : 除IOW以外的系统闲置时间
每个进程的描述说明
- PID : 进程ID
- USER(UID) : 进程所有者的ID
- PR : 进程优先级
- 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过高