常规方式
常规实现一
设定场景线上Dump:Debug.dumpHprofData()
常规实现流程
总结
Dump文件太大,和对象数正相关,可裁剪
上传失败率高、分析困难
配合一定策略,有一定效果
常规实现二
LeakCanary带到线上
预设泄露怀疑点
发现泄露回传
总结
不适合所有情况,必须预设怀疑点
分析比较耗时、也容易OOM
LeakCanary定制
LeakCanary原理
监控生命周期,onDestroy添加RefWatcher检测
二次确认断定发生内存泄露
分析泄露,找引用链
监控组件+分析组件
LeakCanary定制
预设怀疑点-->自动找怀疑点
分析泄露链路慢-->分析Retain size大的对象
分析OOM-->对象裁剪,不全部加载到内存
线上监控完整方案
待机内存、重点模块内存、OOM率
整体及重点模块GC次数、GC时间
增强的LeakCanary自动化内存泄露分析