Memory Analyzer (MAT)Android内存泄漏分析,快速定位

Posted 他晓

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Memory Analyzer (MAT)Android内存泄漏分析,快速定位相关的知识,希望对你有一定的参考价值。

专注于android开发,分享经验总结,欢迎加入

内存泄漏

内存泄漏就是分配的内存空间没有及时回收导致的。可使用的内存变少,应用变卡,最后内存溢出后应用就会挂掉

内存泄漏的检测

准备工具

  • Android Studio

  • Memory Analyzer (MAT)

下载Memory Analyzer (MAT) https://www.eclipse.org/mat/

在导出的文件夹下打开命令行窗口,输入hprof-conv -z 2.hprof 2-mat.hprof

-z 是只选取app heap

为了更清楚的描述,采用图片的方式

打开AndroidStudio 打开Profiler分析内存泄漏,点击memoryMemory Analyzer (MAT)Android内存泄漏分析,快速定位

多点几次GC

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

在GC过后随机选取一段分析

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

然后按照包名筛选

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

导出要分析的文件

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

将导出的文件筛选Memory Analyzer (MAT)Android内存泄漏分析,快速定位

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

打开下载好的Memory Analyzer

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

将刚才导出的文件打开

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

点击如图的选项

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

筛选需要分析的类

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

筛选的结果Memory Analyzer (MAT)Android内存泄漏分析,快速定位

过滤掉软、弱、虚引用

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

定位到了内存泄漏的地方Memory Analyzer (MAT)Android内存泄漏分析,快速定位

定位到了泄漏的地方后,找到所指向的地方,需要自行去判断优化

内存泄漏的地方有时候很难找,需要随机去点击,要有耐心,找到优化完在多分析几次,看看有没有其他的点Memory Analyzer (MAT)Android内存泄漏分析,快速定位Memory Analyzer (MAT)Android内存泄漏分析,快速定位Memory Analyzer (MAT)Android内存泄漏分析,快速定位

代码要规范,不要留坑Memory Analyzer (MAT)Android内存泄漏分析,快速定位

有描述不清楚的,欢迎进群讨论

以上是关于Memory Analyzer (MAT)Android内存泄漏分析,快速定位的主要内容,如果未能解决你的问题,请参考以下文章

Memory Analyzer (MAT)Android内存泄漏分析,快速定位

MAT Memory Analyzer Tool 工具入门介绍

使用Eclipse Memory Analyzer Tool(MAT)分析故障

Java:Memory Analyzer Tool (MAT) 用法:比较两个 heapdump

Java堆分析器 - Eclipse Memory Analyzer Tool(MAT)

Java堆分析器 - Eclipse Memory Analyzer Tool(MAT)