项目性能优化-内存泄漏检测与修改

最近终于有空优化一波项目的性能了,第一波借助Android Studio自带的Profiler工具检测内存泄漏。

第一步、创建Profiler的SESSIONS

项目性能优化-内存泄漏检测与修改_第1张图片

项目性能优化-内存泄漏检测与修改_第2张图片

第二步、进入MEMORY内存监控

右侧带有绿色原点的就是此时运行的Profiler的SESSION,点击右侧MEMORY进入内存监控的详情模块
项目性能优化-内存泄漏检测与修改_第3张图片

第三步、选中“Capture heap dump”,点击"Record"

项目性能优化-内存泄漏检测与修改_第4张图片

第四步、查看Heap Dump文件

第三步中抓取一段时间后,会自动停止,并打开Heap Dump文件
项目性能优化-内存泄漏检测与修改_第5张图片
可以看到抓取到2个会导致内存泄漏的地方,点击查看详细的内存泄漏
项目性能优化-内存泄漏检测与修改_第6张图片
2:内存泄漏所在的类
3:内存泄漏的列表
4:查看内存泄漏的引用链
5:展示最近的GC点
6:显示会产生内存泄漏的详细位置和变量
项目性能优化-内存泄漏检测与修改_第7张图片
项目性能优化-内存泄漏检测与修改_第8张图片
在主Fragment采用List集合维护要切换的子Fragment,这样集合中关联了Fragment对象,就不能及时的销毁对象,就会存在内存泄漏的风险。

第五步、修改内存泄漏点

直接把Fragment的生命周期交给FragmentManager,通过设置TAG,来查找Fragment。
项目性能优化-内存泄漏检测与修改_第9张图片

第六步、重新检测

项目性能优化-内存泄漏检测与修改_第10张图片
至此,就修复了内存泄漏的风险。

你可能感兴趣的:(性能优化,性能优化)