1. 程式人生 > >android 程序監控 top

android 程序監控 top

Android N 及之前

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

結果表述如下:

// CPU佔用率:User 使用者程序;System 系統程序;IOW IO等待時間;IRQ 硬中斷時間
User 35%, System 13%, IOW 0%, IRQ 0% 

// CPU使用情況:
//User    處於使用者態的執行時間,不包含優先值為負程序
//Nice    優先值為負的程序所佔用的CPU時間
//Sys 處於核心態的執行時間
//Idle    除IO等待時間以外的其它等待時間 
//IOW IO等待時間
//IRQ 硬中斷時間
//SIRQ    軟中斷時間
User 109 + Nice 0 + Sys 40 + Idle 156 + IOW 0 + IRQ 0 + SIRQ 1 = 306  

// 程序屬性:
//PID 程序在系統中的ID
//CPU%    當前瞬時所以使用CPU佔用率
//S   程序的狀態,其中S表示休眠,R表示正在執行,Z表示僵死狀態,N表示該程序優先值是負數。
//#THR    程式當前所用的執行緒數
//VSS Virtual Set Size 虛擬耗用記憶體(包含共享庫佔用的記憶體)
//RSS Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體)
//PCY Policy 系統對這個程序/執行緒的排程策略,bg 後臺;fg 前臺
//UID 運行當前程序的使用者id
//
PID CPU% S #THR VSS RSS PCY UID Name

xx  xx% x   xx  xx  xx  xx  xx   xx

ps:

記憶體佔用大小有如下規律:VSS >= RSS >= PSS >= USS

VSS Virtual Set Size 虛擬耗用記憶體(包含共享庫佔用的記憶體)

RSS Resident Set Size 實際使用實體記憶體(包含共享庫佔用的記憶體)

PSS Proportional Set Size 實際使用的實體記憶體(比例分配共享庫佔用的記憶體)

USS Unique Set Size 程序獨自佔用的實體記憶體(不包含共享庫佔用的記憶體)

例項

NX608J:/ $ top -m 5 //顯示最cpu最高的5個程序
User 0%, System 8%, IOW 0%, IRQ 0%
User 4 + Nice 0 + Sys 39 + Idle 413 + IOW 0 + IRQ 0 + SIRQ 0 = 456

PID USER     PR  NI CPU% S  #THR     VSS     RSS PCY Name
11389 shell    20   0   7% R     1   9288K   2040K  fg top
570 system   -2  -8   1% S    13 165428K  24376K  fg /system/bin/surfaceflinger
68 root     20   0   0% S     1      0K      0K  fg rcuop/6
4176 u0_a12   20   0   0% S    57 1866432K 182304K  fg com.android.systemui
710 root     20   0   0% S     1      0K      0K  fg kworker/u16:11

130|NX608J:/ $ top -m 5 -t //顯示最cpu最高的5個程序及其當前執行緒
User 1%, System 9%, IOW 0%, IRQ 0%
User 8 + Nice 0 + Sys 77 + Idle 694 + IOW 0 + IRQ 0 + SIRQ 0 = 779

PID   TID USER     PR  NI CPU% S     VSS     RSS PCY Thread          Proc
11405 11405 shell    20   0   8% R   9288K   2832K  fg top             top
570   570 system   -2  -8   0% S 154420K  24496K  fg surfaceflinger  /system/bin/surfaceflinger
4176  4176 u0_a12   20   0   0% S 1856572K 181540K  fg ndroid.systemui com.android.systemui
77    77 root     20   0   0% S      0K      0K  fg rcuop/7
570  2124 system   20   0   0% S 154420K  24496K  fg Binder:570_5    /system/bin/surfaceflinger

130|NX608J:/ $ top -m 5 -t > /data/topinfo.txt //將cpu資訊儲存到檔案
//需求root 並給topinfo.txt 許可權:chmod 777 data/topinfo.txt
adb pull /data/topinfo.txt

Android O 及之後

1|NX611J:/ $ top --help
usage: top [-Hbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,]

Show process activity in real time.

-H      Show threads
-k      Fallback sort FIELDS (default -S,-%CPU,-ETIME,-PID)
-o      Show FIELDS (def PID,USER,PR,NI,VIRT,RES,SHR,S,%CPU,%MEM,TIME+,CMDLINE)
-O      Add FIELDS (replacing PR,NI,VIRT,RES,SHR,S from default)
-s      Sort by field number (1-X, default 9)
-b      Batch mode (no tty)
-d      Delay SECONDS between each cycle (default 3)
-n      Exit after NUMBER iterations
-p      Show these PIDs
-u      Show these USERs
-q      Quiet (no header lines)

Cursor LEFT/RIGHT to change sort, UP/DOWN move list, space to force
update, R to reverse sort, Q to exit.

例項

130|NX611J:/ $ top -H
Tasks: 2285 total,   2 running,2277 sleeping,   0 stopped,   0 zombie //程序數(Tasks)

Mem:   3833208k total,  3301908k used,   531300k free,     9716k buffers //記憶體使用資訊

Swap:        0k total,        0k used,        0k free,  1738436k cached //交換區使用資訊

800%cpu  20%user   0%nice  52%sys 726%idle   0%iow   2%irq   0%sirq   0%host //cpu使用資訊

 PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ THREAD          PROCESS

8367 shell        20   0  13M 4.0M 1.5M R 44.0   0.1   0:00.27 top             top
808 system       -2  -8  72M  25M  17M S 12.0   0.6  27:55.68 surfaceflinger  surfaceflinger
2006 u0_a10       20   0 4.3G 176M  85M S  6.0   4.7  20:15.73 ndroid.systemui com.android.systemui
779 system       -3  -8  33M 8.0M 4.7M S  4.0   0.2   1:41.94 [email protected] [email protected]
8243 root         20   0    0    0    0 S  2.0   0.0   0:03.94 kworker/u16:11  [kworker/u16:11]
8174 root         20   0    0    0    0 S  2.0   0.0   0:09.81 kworker/u16:7   [kworker/u16:7]
8167 root         RT   0    0    0    0 D  2.0   0.0   0:10.62 mdss_fb0        [mdss_fb0]
8051 root         20   0    0    0    0 S  2.0   0.0   0:23.15 kworker/u16:20  [kworker/u16:20]
1296 system       20   0 4.3G 179M 127M S  2.0   4.7   0:03.32 Binder:1296_13  system_server
779 system       -3  -8  33M 8.0M 4.7M S  2.0   0.2   0:37.77 HwBinder:779_2  [email protected]

RES:表示程序所用實體記憶體大小(單位:KB) 
%MEM:表示記憶體使用百分比(單位:KB)

相關推薦

android 程序監控 top

Android N 及之前adb shell $ top -h Usage: top [-m max_procs] [-n iterations] [-d delay] [-s sort_column] [-t] [-h] -m num Maximum numb

程序監控top free ps grep pgrep pkill kill & bg fg jobs nohup ctrl+z pstree

一、top命令 https://blog.csdn.net/gxiaop/article/details/55096686     1是顯示其他cpu內容 M按照記憶體排序 P按照cpu排序 K 殺掉某個進行 nice 表示優先順序改動過的,優先順序數字越低,優先度越大

android 程序 避免nfc重復掃描

ext add notify emc edittext adapter contain 避免 get if (!dataList.contains(result)) { dataList.add(0,result);

Android程序全然退出的三種方法

set 歷史 text post 代碼 rtp otto start lin 1. Dalvik VM的本地方法 android.os.Process.killProcess(android.os.Process.myPid()) //獲取PID,眼下獲取

挨踢部落故事匯(20):Android程序員的十大轉型之路

開發者故事玖哥是一個來自東北的Android攻城獅,現在定居被譽為“大湖名城,創(chuan)新(xiao)高地”的合肥。知識面極廣,不僅廣泛涉獵IT相關知識,還熱愛文學,性格幽默,被譽為“會搞Android的段子手”。他還是一個藏書人士,擁有汗牛充棟的IT書籍,而且每本書都認真閱讀過,從不拿書當擺設。玖哥·

Android 程序打包及簽名

android 程序 為什麽要簽名??? 開發Android的人這麽多,完全有可能大家都把類名,包名起成了一個同樣的名字,這時候如何區分?簽名這時候就是起區分作用的。 由於開發商可能通過使用相同的Package Name來混淆替換已經安裝的程序,簽名可以保證相當名字,但是簽名不同的包不被替

寫一個android內置android程序

nod 編譯錯誤 外部 post 沒有 ant gen fun ews 當我們編譯完畢android源代碼之後,就須要對他做點什麽事情,我如今正在看老羅的”Android源代碼情景分析”一書。在這裏主要是記錄一些書中沒有說清楚的地方. 相同。我們創建一

aNDROID程序調用asMX頁面

android asm baidu com andro androi shape asmx hao123 aNDROID%E8%A6%81%E6%83%B3%E7%BE%8E%E5%8C%96%E5%B0%B1%E7%94%A8sHapE http://music.hao

中文版aNDROID程序員向導

hao123 com music 程序員 ongl list 中文版 中文 android %E4%B8%80%E4%B8%AA%E5%85%B3%E4%BA%8E%E5%86%85%E5%AD%98%E6%B3%84%E9%9C%B2%E7%9A%84%E9%97%AE%

Android 程序架構: MVC、MVP、MVVM、Unidirectional、Clean...

不同 概念 可能 十年 tin gettext 聲明 數據 content 摘選自:GUI 應用程序架構的十年變遷:MVC、MVP、MVVM、Unidirectional、Cleanhttps://zhuanlan.zhihu.com/p/26799645 MV

Android監控home鍵

get 開發 close watcher android inter filter 需要 gist 一、需求 在應用開發過程中,啟動服務開啟線程鎖等待服務返回解鎖,為了避免點擊home鍵使線程鎖卡死的bug,需要監控home鍵,解鎖線程。 二、實現 在應用時,需要regis

國際慣例第一個Android程序

安裝包 sdk版本 web logs clas 重新 普通 內容 所有 我這裏用的開發工具是 ADT Bundle(adt-bundle-windows-x86_64-20140702),ADT Bundle包含了Eclipse、ADT插件和SDK Tools,是已

講給Android程序員看的前端和後臺教...[Android]

.html dad get clas mys bdd uos b250 htm 2o2c8k該俅磁莢禱姑http://blog.sina.com.cn/s/blog_17bde30600102xi86.htmlgky4c0既諳哨嘿砍魏http://blog.sina.com

Android程序員轉型之路微信h5牛牛大廳源碼出售

之路 而是 科技 系統 給人 flappy pos 掌握 簡單 IT行業是一個瞬息萬變的行業,程序員是一個不進則退的職業。我作為一個Android程序員,多年來一直保持隨時可以轉型其他技術領域的狀態,保持對新技術敏感的嗅覺。 我先說說Android程序員不可能轉型的幾個

1.9 Android程序簽名打包

點擊 簽名 是否 公開 方法 oid 我們 分享 允許 本節引言: 第一章的倒數第二節,本節給大家介紹的是如何將我們的程序打包成Apk文件,並且為我們的Apk簽名! 上一節中已經說了,我們後續的教程使用的IDE是Android Studio,所以本節講解的也是AS(後面都這

20165324 Java實驗四 Android程序設計

res 實驗操作 ID 圖形界面 cnblogs sdk .cn device 設定 20165324 Java實驗四 Android程序設計 一、實驗報告封面 課程:Java程序設計 班級:1653班 姓名:何春江 學號:20165324 指導教師:婁嘉鵬 實驗日期:20

20165219第4次實驗《Android程序設計》實驗報告

事件處理 實驗報告 oid androi AC IT 安裝測試 事件 安裝 20165219第4次實驗《Android程序設計》實驗報告 一、實驗內容及步驟 (一)Android Stuidio的安裝測試 (二)Activity測試 (三) UI測試 (四) 布局測試 (五

20165232第4次實驗《Android程序設計》實驗報告

開發 roc 日期 res 構建項目 名稱 程序設計 AI 安裝 20165232第4次實驗《Android程序設計》實驗報告 一、實驗報告封面 一、實驗報告封面 課程:Java程序設計 班級:1652班 姓名:何彥達 學號:20165232 指導教師:婁嘉鵬 實驗日期:2

2017-2018-2 20165233 實驗四 Android程序設計

ID 實驗 alt 創建 碼雲 syn src device AC 20165233 實驗四 Android程序設計 實驗內容 任務一: 參考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安裝 Androi

2017-2018-2 20165315 實驗四《Android程序設計》實驗報告

idt 目的 不同 目錄 stat pic AC 定義 fan 2017-2018-2 20165315 實驗四《Android程序設計》實驗報告 第24章:初識Android Android Studio項目的目錄樹 1 build:該目錄包含了自動生成的文件,這些