1. 程式人生 > >android系統(10)--top 命令

android系統(10)--top 命令

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.

-m: 顯示的最多程序數,做優化時一般只關心CPU佔用率最高的幾個程序,那麼只需要top -m 3或top -m 5就好了,以免top命令的輸出太多

-n:顯示n次top的結果後命令就會退出

-d:更新的時間間隔,預設是每隔3s更新下狀態,top -d 0時會持續地輸出,不過很佔CPU。

-s:選擇根據某項(cpu,vss,rss,thr)來排序

-t: 顯示執行緒而非程序

-h:顯示幫助資訊

優化中需要了解各個CPU利用率,以評估程式的多執行緒並行性。但Android系統的top缺少了統計各個CPU利用率的功能,我還在尋找是否有其他的方法

    PID       PR     CPU%      S       #THR           VSS        RSS       PCY           UID      Name

 1314         0            0%      R               1       1000K       392K       fg               root       top
     68          0            0%      D               1              0K           0K        fg               root       COMIP Battery s
   399          0            0%      S               8       9696K      860K        fg                root      /system/bin/rild



PID:      程序在系統中的ID

CPU% - 當前瞬時所以使用CPU佔用率

#THR - 程式當前所用的執行緒數

UID - 運行當前程序的使用者id

Name - 程式名稱org.xmpp.app

VSS - Virtual Set Size 虛擬耗用記憶體(包含共享庫佔用的記憶體)
RSS - Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體)
PSS - Proportional Set Size 實際使用的實體記憶體(比例分配共享庫佔用的記憶體)
USS - Unique Set Size 程序獨自佔用的實體記憶體(不包含共享庫佔用的記憶體)

一般來說記憶體佔用大小有如下規律:VSS >= RSS >= PSS >= USS  就不把執行效果放上來了,總之結果表述如下:
  1. User 35%, System 13%, IOW 0%, IRQ 0% // CPU佔用率 
  2. User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306 // CPU使用情況 
  3. PID CPU% S #THR VSS RSS PCY UID Name // 程序屬性 
  4. xx  xx% x   xx  xx  xx  xx  xx   xx 
  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 程序獨自佔用的實體記憶體(不包含共享庫佔用的記憶體)