利用MAT,两步找出内存泄漏原因

原创 2017年01月02日 21:18:05

当我们利用 Android Studio 的 Memory Monitor 工具(HPROF Viewer 和 Analyzer)找出内存泄漏的Activity 后,你会发现这么多的引用,要找出泄漏点太难了,同时AS尚未提供有效的工具(可能我不知道,求告知),那么就是 Eclipse Memory Analyzer (MAT) 的 showtime 了。
很简单,就两步:
一. 利用 HPROF Viewer 生成两份 .hprof 文件,一份泄露前,一份泄漏后,并通过 AS 的 hprof-conv 工具转换成 MAT 可用的 .hprof 文件。
例如:

hprof-conv G:\...\captures\mypro_2017.01.01_09.27.hprof G:\...C\captures\hprof_convert\name.hprof

二. MAT 中打开两份文件,在 Histogram 视图中对比,搜索找到泄露的 Activity ,右键点击过滤(如图),此时持有者就出现了。(在 Histogram 视图中对比,会出现对象数量变化的对象,“ + ”表示增加了多少,这种详细的对比可能帮助你找出问题)

这里写图片描述

关于工具如何使用,见上篇:分析Android内存泄漏的高质量资料
也可参考:Android 性能优化之使用MAT分析内存泄露问题

版权声明:本文为博主原创文章,未经博主允许不得转载。

内存泄漏分析工具mat

  • 2017年07月13日 23:29
  • 58.19MB
  • 下载

利用Android Studio、MAT对Android进行内存泄漏检测

android开发中难免会遇到各种内存泄漏,如果不及时发现处理,会导致出现内存越用越大,可能会因为内存泄漏导致出现各种奇怪的crash,甚至可能出现因内存不足而导致APP崩溃。Android的内存泄漏...
  • lyb2518
  • lyb2518
  • 2017年07月12日 20:13
  • 137

利用Android Studio、MAT对Android进行内存泄漏检测

项目进入维护阶段时才有时间测试分析app的内存问题,这时就要用到测试工具了,可以使用Android Studio、MAT互相结合进行测试, 但是对于复杂的,这两者很难分析出来,但这两测试工具也是必须掌...

Java内存泄漏原因分析大全

  • 2012年09月10日 16:33
  • 160KB
  • 下载

使用Memory Analyzer tool(MAT)分析内存泄漏(一)

前言   在平时工作过程中,有时会遇到OutOfMemoryError,我们知道遇到Error一般表明程序存在着严重问题,可能是灾难性的。所以找出是什么原因造成OutOfMemoryError非常重要...

Android防止内存泄漏以及MAT的使用

Android发生内存泄漏最普遍的一种情况就是长期保持对Context,特别是Activity的引用,使得Activity无法被销毁。这也就意味着Activity中所有的成员变量也没办法销毁。本文仅介...
  • sgwhp
  • sgwhp
  • 2013年08月08日 22:01
  • 6811

使用jmap和MAT定位内存泄漏OOM

一句话 分析 heap profile 文件1 运行应用程序(使用jre版本为1.6以上)2 命令行执行            jmap -dump:format=b,file=d:/heap.hpr...
  • arkblue
  • arkblue
  • 2011年01月08日 16:00
  • 4741

使用Memory Analyzer tool(MAT)分析内存泄漏

jmat是java自带的一个内存分析工具,我们可以使用命令将内存分析文件导出,然后使用分析查看类工具进行分析。但我们这里主要讲解使用eclipse插件的方式,对该文件进行分析。 一、首先下载一个基于...

Android内存泄漏检测与MAT使用

内存泄漏基本概念内存检测这部分,相关的知识有JVM虚拟机垃圾收集机制,类加载机制,内存模型等。编写没有内存泄漏的程序,对提高程序稳定性,提高用户体验具有重要的意义。因此,学习java利用java编写程...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:利用MAT,两步找出内存泄漏原因
举报原因:
原因补充:

(最多只允许输入30个字)