利用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分析内存泄露问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/nifanggge/article/details/53982287

Mat工具查看内存泄露和内存溢出情况

首先需要去下一个MAT工具。地址如下:http://download.eclipse.org/mat/1.5/update-site/安装好了工具之后就需要我们去实现查找内存泄露的原因了. 在进...
  • u012515603
  • u012515603
  • 2015-12-16 18:43:05
  • 1279

利用MAT进行内存泄露分析

前言 对于程序员来说码代码容易,保证代码的稳定性很难。有时候写完一个功能可能只需要一天时间,但是这个功能隐藏的bug导致的线上问题排查可能需要一周或者更长时间。因此,拥有良好的代码结构和编码...
  • yxz329130952
  • yxz329130952
  • 2015-12-13 23:31:40
  • 13321

Jmap+MAT 排查内存泄漏

最近在项目中自测的时候(压力测试)遇到内存泄漏的情况,想查看具体是哪个模块甚至哪个类引起的问题,经同事推荐使用Jmap+MAT的组合进行了一次尝试,下面记录一下,以便今后深入学习使用。 这里可以用一个...
  • thjnemo
  • thjnemo
  • 2015-01-25 20:17:22
  • 2077

Android内存泄漏终极解决篇

来自:huang_cai_yuan 链接:http://blog.csdn.net/huang_cai_yuan/article/details/50375019 http://blog....
  • guduxiake1106
  • guduxiake1106
  • 2016-03-14 13:58:39
  • 174

内存泄漏定位

    第一种:通过"OutPut窗口"定位引发内存泄漏的代码(下面转,我写的没原文好,也懒得写)。 我们知道,MFC程序如果检测到存在内存泄漏,退出程序的时候会在调试窗口提醒内存泄漏。例如:clas...
  • rabbit729
  • rabbit729
  • 2008-06-17 23:02:00
  • 1544

利用mat定位内存泄露原因

MAT分析: histogram--shallow heap排序-list objects-withincoming references--gc root,非常好定位...
  • u011649536
  • u011649536
  • 2016-03-07 11:05:40
  • 594

android使用mat分析内存泄漏

android使用mat分析内存泄漏
  • liuwenhan999
  • liuwenhan999
  • 2014-12-12 17:45:38
  • 2002

内存分析工具 MAT 的使用

转载自:http://blog.csdn.net/aaa2832/article/details/19419679 1 内存泄漏的排查方法 Dalvik Debug Mon...
  • wulong710
  • wulong710
  • 2015-09-18 17:39:01
  • 258

使用MAT查看Android内存泄露

1 环境:mac+Android studio+Genymoation+ MAT(Eclipse MemoryAnalyzer) 2 步骤: 运行测试代码,生成dump文件,然后MAT中进行分析。 ...
  • a314773862
  • a314773862
  • 2016-03-03 23:41:45
  • 294

内存泄漏分析工具mat

  • 2017年07月13日 23:29
  • 58.19MB
  • 下载
收藏助手
不良信息举报
您举报文章:利用MAT,两步找出内存泄漏原因
举报原因:
原因补充:

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