monkey檢測內存泄漏

 

monkey中檢查內存泄漏,其實是對一個操做屢次操做後看內存狀況,內存泄漏具體的原理可百度,如今咱們梳理檢測內存泄漏的方法:shell

測試前你須要安裝:工具

1.MAT分析工具測試

2.使用工具事實監控內存指標,如今咱們看具體的操做spa

 

1測試應用程序先保存內存狀況,可查看內存增加

測試被測應用程序前,先保存沒有運行前的運行程序的內存指標,並生成hprof文件用命令code

adb shell am dumpheap <進程名>  /data/local/tmp/new.hprof,blog

 

並查看文件是否保存成功進程

 

 

2.運行被測試應用時開啓內存檢測工具

這時你須要開啓內存監控工具,實時監控內存,並在他執行過程當中看內存的指標變化是否很大,變化大,從1000一下就到2000,在到4000,內存持續增加,說明並無被GC回收,很明確這裏就有內存泄漏了內存

下面是一個大神寫的一個腳本好用class

set process=進程名

@adb shell dumpsys meminfo %process% | findstr "Pss"

:m

@adb shell dumpsys meminfo %process% | findstr "TOTAL"

@ping -n 5 127.1>nul

@goto m

 

構建成一個bat文件就能夠執行了test

3.運行被測試應用

怎麼運行測試,仍是要看具體的要求和本身構建的場景,通常跑一個APP最好是在5-6個小時造成一個曲線,才能看具體的一個實際狀況,下面運行了兩個比較簡單的例子:

1.屏幕旋轉會帶來內存泄漏,我也試了下,以下命令:

 

2.在換成了隨機運行並保存文件

 

把以上文件都保存,並把它pull到電腦,個人是E盤

 

用adb pull /data/local/tmp/new1.hprof e:\test\new.hprof到E盤中

注意由於MAT中不可以直接識別咱們導出來的hprof文件,咱們須要經過SDK的文件中帶的hprof-conv進行轉換

如:我從手機上導出的文件是NEW.hpof

 

以後使用MAT工具打開就行了

 

下面就是分析了,MAT檢測了一些多是泄漏的點,能夠查看,具體分析方法下回再來

相關文章
相關標籤/搜索