monkey檢測內存泄漏


 

monkey中檢查內存泄漏,實際上是對一個操作多次操作后看內存情況,內存泄漏具體的原理可百度,現在我們梳理檢測內存泄漏的方法:

測試前你需要安裝:

1.MAT分析工具

2.使用工具事實監控內存指標,現在我們看具體的操作

 

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

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

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

 

並查看文件是否保存成功

 

 

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

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

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

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文件就可以執行了

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檢測了一些可能是泄漏的點,可以查看,具體分析方法下回再來

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM