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 進程的名稱