APP专项---内存泄漏2

APP专项---内存泄漏2

本次利用DDMS来测试。


adb devices,设备连接正常

启动App,操作一会

启动DDMS

APP专项---内存泄漏2

左侧,先找到刚才操作的App,选中

然后点击左上角的show heap updates

APP专项---内存泄漏2

然后,右侧点击 VM Heap-->Cause GC(主动进行一次垃圾清理)

关注data object-->Total Size

APP专项---内存泄漏2

Used%也可以做参考,主要还是观察 Total Size

APP专项---内存泄漏2

继续操作App

如果Total Size的值稳定在一个有限的范围(每次GC之后都会回落),

说明代码良好,不存在内存泄漏

反之,如果这个值越来越大,则说明存在内存泄漏


如果出现内存泄漏,Dump HPROF file

APP专项---内存泄漏2


然后使用hprof-conv命令转化一下,

 APP专项---内存泄漏2

把转化后的文件,放入一个目录

然后,使用MAT分析

APP专项---内存泄漏2

打开文件

APP专项---内存泄漏2

APP专项---内存泄漏2

APP专项---内存泄漏2

Shallow Heap排序,倒序

APP专项---内存泄漏2

在第一条上,右键,List objects--with incoming references

APP专项---内存泄漏2

再排一下序,倒序

APP专项---内存泄漏2

选择第一条,右键,Path To GC Roots-->倒数第二项

APP专项---内存泄漏2

分析一下最下面那个,有可能就是问题所在,提交个开发即可

APP专项---内存泄漏2