Android Studio Profiler使用心得 检测内存泄露问题

时间:2019-02-19
本文章向大家介绍Android Studio Profiler使用心得 检测内存泄露问题,主要包括Android Studio Profiler使用心得 检测内存泄露问题使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

最近在分析app的内存泄露问题研究了下as的profiler功能  这里记录下个人心得

内存泄露相关文档:https://juejin.im/post/5a652d31518825734108080d

首先  对于profiler基础介绍 :https://blog.csdn.net/gaugamela/article/details/79027538

下面是个人心得

1.首先得出结论profiler不详细提供分析c或c++库进行的内存占用 其中包括android 系统使用的库或者自己的.so库 它们占用的内存在下面Native部分统计

2.profiler统计中详细可以查看的内存占用主要就是下图java部分和allocated部分了(不知道这个 看profiler的介绍 内存占用不管怎么算  数字都对应不上  哈哈)

3.我们看下面  shallow size 此堆中所有实例的总大小(以字节为单位)。其实算是比较真实的java堆内存

比如下图  java堆中占用5.2M内存  在选定的时间点 java占用shallow size统计的1M左右内存(单位为字节)

看左边String  数据  在选定时间段内  分配了202个  回收了182个  其中剩下的就是未回收的  其中会包括正在使用的部分或其他

 

点入可以看到  这个数据的分配时间和回收时间  没有回收的会看到 没有标注回收时间  可以在下方查看代码调用的地方  然后进行处理

个人经验  可以让某个功能反复运行几个周期 然后在profiler中选定整个周期时间  从开始内测分配的时间(坡度开始)到最终释放的时间(周期回收的坡底)这样  多个周期结束  这个时间段内  统计的内存占用  为整个过程完成后剩下的 占用情况  这样就可以进一步分析  内存泄露情况了