1. 程式人生 > >Android系統adb命令檢視CPU與記憶體使用率

Android系統adb命令檢視CPU與記憶體使用率

 1. 開啟終端,進入上述目錄,如下圖所示:                                                   2. 輸入adb shell,開啟adb命令列,如下圖所示:                                                3. 檢視cpu使用情況:       輸入命令:top -m 10 -s cpu(-m顯示最大數量,-s 按指定行排序),如下圖所示:                             
  1. 引數含義:  
  2. PID  : progress identification,應用程式ID  
  3. S    : 程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數  
  4. #THR : 程式當前所用的執行緒數  
  5. VSS  : Virtual Set Size虛擬耗用記憶體(包含共享庫佔用的記憶體)  
  6. RSS  : Resident Set Size實際使用實體記憶體(包含共享庫佔用的記憶體)  
  7. PCY  : 前臺(fg)和後臺(bg)程序  
  8. UID  : User Identification,使用者身份ID  
  9. Name : 應用程式名稱  
(注意第一列的pid,使用pid值可以檢視當前程式的記憶體使用情況。)       4. 檢視指定程式記憶體使用情況:       輸入命令:dumpsys meminfo pid,比如檢視手機安裝的360安全衛士,那麼實際命令應該為:dumpsys meminfo 3253,如下圖所示:                          
  1. 引數含義:  
  2. dalvik : dalvik使用的記憶體  
  3. native : native堆上的記憶體,指C\C++堆的記憶體(android 3.0以後bitmap就是放在這兒)  
  4. other  : 除了dalvik和native的記憶體,包含C\C++非堆記憶體······  
  5. Pss    : 該記憶體指將共享記憶體按比例分配到使用了共享記憶體的程序  
  6. heap alloc    : 已使用的記憶體  
  7. heap free     : 空閒的記憶體  
  8. share dirty   : 共享,但有不能被換頁出去的記憶體  
  9. private dirty : 非共享,又不能被換頁出去的記憶體(比如linux系統中為了提高分配記憶體速度而緩衝的小物件,即使你的程序已經退出,該記憶體也不會被釋放)  
5. 使用ctrl + c,退出adb命令列。

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.  // 顯示幫助文件 

  1. User 15%, System 12%, IOW 0%, IRQ 0% // CPU佔用率 
  2. User 468 + Nice 125 + Sys 481 + Idle 2783 + IOW 1 + IRQ 0 + SIRQ 2 = 3860 // CPU使用情況 
  3. PID   PR   CPU% S  #THR     VSS         RSS    PCY       UID             Name // 程序屬性 
  4. 284   1     16% S         61     473068K  41488K   fg       media    /system/bin/mediaserver
  5. CPU佔用率: 
  6. User    使用者程序 
  7. System  系統程序 
  8. IOW IO等待時間 
  9. IRQ 硬中斷時間 
  10. CPU使用情況(指一個最小時間片內所佔時間,單位jiffies。或者指所佔程序數): 
  11. User    處於使用者態的執行時間,不包含優先值為負程序 
  12. Nice    優先值為負的程序所佔用的CPU時間 
  13. Sys 處於核心態的執行時間 
  14. Idle    除IO等待時間以外的其它等待時間 
  15. IOW IO等待時間 
  16. IRQ 硬中斷時間 
  17. SIRQ    軟中斷時間 
  18. 程序屬性: 
  19. PID 程序在系統中的ID 
  20. CPU%    當前瞬時所以使用CPU佔用率 
  21. S   程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數。 
  22. #THR    程式當前所用的執行緒數 
  23. VSS Virtual Set Size 虛擬耗用記憶體(包含共享庫佔用的記憶體) 
  24. RSS Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體) 
  25. PCY OOXX,不知道什麼東東 
  26. UID 運行當前程序的使用者id 
  27. Name    程式名稱android.process.media 
  28. // ps:記憶體佔用大小有如下規律:VSS >= RSS >= PSS >= USS 
  29. // PSS  Proportional Set Size 實際使用的實體記憶體(比例分配共享庫佔用的記憶體) 
  30. // USS  Unique Set Size 程序獨自佔用的實體記憶體(不包含共享庫佔用的記憶體)