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检测了一些多是泄漏的点,能够查看,具体分析方法下回再来

相关文章
相关标签/搜索