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

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

第一步、创建Profiler的SESSIONS

在这里插入图片描述

在这里插入图片描述

第二步、进入MEMORY内存监控

右侧带有绿色原点的就是此时运行的Profiler的SESSION,点击右侧MEMORY进入内存监控的详情模块
在这里插入图片描述

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

在这里插入图片描述

第四步、查看Heap Dump文件

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

第五步、修改内存泄漏点

直接把Fragment的生命周期交给FragmentManager,通过设置TAG,来查找Fragment。
在这里插入图片描述

第六步、重新检测

在这里插入图片描述
至此,就修复了内存泄漏的风险。

猜你喜欢

转载自blog.csdn.net/u011557841/article/details/131481725