Android adb命令cpu拗军、內(nèi)存信息查看

0抓狭、top命令
Tasks: 552 total, 1 running, 510 sleeping, 0 stopped, 0 zombie
任務(wù)(進程) 系統(tǒng)現(xiàn)在共有552個進程伦泥,其中處于運行中的有1個胸竞,510個在休眠(sleep)斥季,stoped狀態(tài)的有0個训桶,zombie狀態(tài)(僵尸)的有0個。

Mem: 5849960k total, 4014628k used, 1835332k free, 5756k buffers
內(nèi)存狀態(tài): 物理內(nèi)存總量 (5.6G) 使用中的內(nèi)存總量 空閑內(nèi)存總量 緩存的內(nèi)存量
1TB=1024GB ,1GB=1024MB ,1MB=1024KB ,1KB=1024字節(jié)酣倾。

Swap: 2293756k total, 1039804k used, 1253952k free, 918600k cached
swap交換分區(qū): 交換區(qū)總量 使用的交換區(qū)總量 空閑交換區(qū)總量 緩沖的交換區(qū)總量

如果出于習(xí)慣去計算可用內(nèi)存數(shù)舵揭,這里有個近似的計算公式:
Mem的free + Mem的buffers + Swap的cached
按這個公式此臺服務(wù)器的可用內(nèi)存:1835332k + 5756k + 918600k = 2759688k(約2.6G)

800%cpu 13%user 0%nice 31%sys 756%idle 0%iow 0%irq 0%sirq 0%host
cpu狀態(tài)
800%cpu -- CPU總量
13%user -- 用戶空間占用CPU的百分比。
0%nice -- 改變過優(yōu)先級的進程占用CPU的百分比
31%sys -- 內(nèi)核空間占用CPU的百分比
756%idle -- 空閑CPU百分比
0%iow -- IO等待占用CPU的百分比
0%irq -- 硬中斷(Hardware IRQ)占用CPU的百分比
0%sirq -- 軟中斷(Software Interrupts)占用CPU的百分比
0%host --

PID — 進程id
USER — 進程所有者
PR — 進程優(yōu)先級
NI — nice值躁锡。負值表示高優(yōu)先級午绳,正值表示低優(yōu)先級
VIRT — 進程使用的虛擬內(nèi)存總量,單位kb稚铣。VIRT=SWAP+RES
RES — 進程使用的箱叁、未被換出的物理內(nèi)存大小,單位kb惕医。RES=CODE+DATA
SHR — 共享內(nèi)存大小耕漱,單位kb
S — 進程狀態(tài)。D=不可中斷的睡眠狀態(tài) R=運行 S=睡眠 T=跟蹤/停止 Z=僵尸進程
%CPU — 上次更新到現(xiàn)在的CPU時間占用百分比
%MEM — 進程使用的物理內(nèi)存百分比
TIME+ — 進程使用的CPU時間總計抬伺,單位1/100秒
COMMAND — 進程名稱(命令名/命令行)

  PID USER         PR  NI VIRT  RES  SHR S[%CPU] %MEM     TIME+ ARGS                                                 ?[0m
shell        20   0  10M 2.4M 1.5M R 25.0   0.0   0:00.08 top
u0_a21       20   0 4.5G  27M  23M S  9.3   0.4   0:02.56 com.google.android.gms.unstable
root         20   0    0    0    0 S  3.1   0.0   0:01.81 [kworker/u16:4]
root         20   0    0    0    0 S  3.1   0.0   0:03.28 [kworker/2:1]
system       18  -2 4.9G 184M  90M S  3.1   3.2 417:44.25 system_server
  1. 在Log信息中
    當程序運行垃圾回收的時候螟够,會打印一條Log信息,其格式如下:
    D/dalvikvm: <GC_Reason> <Amount_freed>, <Heap_stats>, <External_memory_stats>, <Pause_time>

GC_Reason表示導(dǎo)致垃圾回收的原因以及當前的回收類型,包括以下幾類:
GC_CONCURRENT:當堆中對象數(shù)量達到一定是觸發(fā)的垃圾收集
GC_FOR_MALLOC:在內(nèi)存已滿的情況下分配內(nèi)存妓笙,此時系統(tǒng)會暫停程序并回收內(nèi)存
GC_HPROF_DUMP_HEAP:創(chuàng)建FPFOR文件來分析Heap時所造成的垃圾收集
GC_EXPLICIT: 程序調(diào)用了垃圾收集函數(shù)System.gc

GC_EXTERNAL_ALLOC: 出現(xiàn)在API 10及以下若河,為外部分配內(nèi)存(native memory or NIO buffer)所造成的垃圾回收,高版本全部分配在Dalvik Heap中寞宫。

Amount_freed 表示此次回收的內(nèi)存

Heap_stats 表示空閑內(nèi)存百分比和存活對象大小/堆的總大小

External_memory_stats 表示API 10及以下的外部分配內(nèi)存萧福,已分配內(nèi)存/導(dǎo)致垃圾回收的界限

Pause_time 暫停時間,一個表示開始回收垃圾的時間辈赋,另一個表示回收結(jié)束的暫停時間

D/dalvikvm( 9050): GC_CONCURRENT freed 2049K, 65% free 3571K/9991K, external 4703K/5261K, paused 2ms+2ms
注意這條信息中的 “ 3571K/9991K” 值鲫忍,這代表著程序使用的heap大小。

2.使用DDMS
Eclipse中的DDMS提供了一個觀察內(nèi)存使用情況的GUI钥屈,當我們不斷點擊Cause GC時悟民,就會看到當前程序的Heap,使用比較方便篷就,具體用法可以Google一下射亏。

3.使用adb dumpsys 命令
adb是一個非常強大的工具,使用adb查看應(yīng)用程序內(nèi)存使用情況可按如下格式在命令行里查看內(nèi)存使用情況:
adb shell dumpsys meminfo <package_name>
其中竭业,package_name 也可以換成程序的pid智润,pid可以通過 adb shell top | grep app_name 來查找,下圖是某個程序的內(nèi)存使用情況:


image

重點關(guān)注如下幾個字段:
(1) Native/Dalvik 的 Heap 信息
具體在上面的第一行和第二行永品,它分別給出的是JNI層和Java層的內(nèi)存分配情況做鹰,如果發(fā)現(xiàn)這個值一直增長,則代表程序可能出現(xiàn)了內(nèi)存泄漏鼎姐。

(2) Total 的 PSS 信息
這個值就是你的應(yīng)用真正占據(jù)的內(nèi)存大小钾麸,通過這個信息,你可以輕松判別手機中哪些程序占內(nèi)存比較大了炕桨。

4. 使用adb shell procrank
手機中的sh是經(jīng)過精簡過的饭尝,有些手機可能沒有 procrank 命令,可以使用genymotion模擬器献宫,或是自己安裝procrank命令钥平。使用procrank時,命令行的輸出入下圖:

image

可以看到姊途,在linux下表示內(nèi)存的耗用情況有四種不同的表現(xiàn)形式:
VSS - Virtual Set Size 虛擬耗用內(nèi)存(包含共享庫占用的內(nèi)存)
RSS - Resident Set Size 實際使用物理內(nèi)存(包含共享庫占用的內(nèi)存)
PSS - Proportional Set Size 實際使用的物理內(nèi)存(比例分配共享庫占用的內(nèi)存)
USS - Unique Set Size 進程獨自占用的物理內(nèi)存(不包含共享庫占用的內(nèi)存)

VSS:VSS表示一個進程可訪問的全部內(nèi)存地址空間的大小涉瘾。這個大小包括了進程已經(jīng)申請但尚未使用的內(nèi)存空間。在實際中很少用這種方式來表示進程占用內(nèi)存的情況捷兰,用它來表示單個進程的內(nèi)存使用情況是不準確的立叛。
RSS:表示一個進程在RAM中實際使用的空間地址大小,包括了全部共享庫占用的內(nèi)存贡茅,這種表示進程占用內(nèi)存的情況也是不準確的秘蛇。
PSS:表示一個進程在RAM中實際使用的空間地址大小其做,它按比例包含了共享庫占用的內(nèi)存。假如有3個進程使用同一個共享庫赁还,那么每個進程的PSS就包括了1/3大小的共享庫內(nèi)存妖泄。這種方式表示進程的內(nèi)存使用情況較準確,但當只有一個進程使用共享庫時艘策,其情況和RSS一模一樣蹈胡。
USS:表示一個進程本身占用的內(nèi)存空間大小,不包含其它任何成分柬焕,這是表示進程內(nèi)存大小的最好方式审残!
可以看到:VSS>=RSS>=PSS>=USS

5.其它常用命令命令:
adb shell kill PIDNumber 死你想殺死的后臺進程來模擬某種 bug 的復(fù)現(xiàn)條件梭域。
adb shell ps 查看當前終端中的進程信息

那么如何在代碼中判斷當前的硬件系統(tǒng)有多少的 RAM 呢斑举?在 Framework ProcessList.java 中有如下代碼可用:
ProcessList() {
MemInfoReader minfo = new MemInfoReader();
minfo.readMemInfo();
mTotalMemMb = minfo.getTotalSize()/(1024*1024);
}

查看進程占用cpu的情況:adb shell top -n 1 -d 0.5 | grep proc_ id

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市病涨,隨后出現(xiàn)的幾起案子富玷,更是在濱河造成了極大的恐慌,老刑警劉巖既穆,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赎懦,死亡現(xiàn)場離奇詭異,居然都是意外死亡幻工,警方通過查閱死者的電腦和手機励两,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來囊颅,“玉大人当悔,你說我怎么就攤上這事√叽” “怎么了盲憎?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵,是天一觀的道長胳挎。 經(jīng)常有香客問我饼疙,道長,這世上最難降的妖魔是什么慕爬? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任窑眯,我火速辦了婚禮,結(jié)果婚禮上医窿,老公的妹妹穿的比我還像新娘磅甩。我一直安慰自己,他們只是感情好留搔,可當我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布更胖。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪却妨。 梳的紋絲不亂的頭發(fā)上饵逐,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音彪标,去河邊找鬼倍权。 笑死,一個胖子當著我的面吹牛捞烟,可吹牛的內(nèi)容都是我干的薄声。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼题画,長吁一口氣:“原來是場噩夢啊……” “哼默辨!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起苍息,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎竞思,沒想到半個月后表谊,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡盖喷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年爆办,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片课梳。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡距辆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惦界,到底是詐尸還是另有隱情挑格,我是刑警寧澤,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布沾歪,位于F島的核電站漂彤,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏灾搏。R本人自食惡果不足惜挫望,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望狂窑。 院中可真熱鬧媳板,春花似錦、人聲如沸泉哈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至奕纫,卻和暖如春提陶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背匹层。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工隙笆, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人升筏。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓撑柔,卻偏偏與公主長得像,于是被迫代替她去往敵國和親您访。 傳聞我的和親對象是個殘疾皇子铅忿,可洞房花燭夜當晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容