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

 

转载于:https://www.cnblogs.com/chongyou/p/5273227.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值