最近在分析app的内存泄露问题研究了下as的profiler功能 这里记录下个人心得
内存泄露相关文档:https://juejin.im/post/5a652d31518825734108080d
首先 对于profiler基础介绍 :https://blog.youkuaiyun.com/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个 其中剩下的就是未回收的 其中会包括正在使用的部分或其他