文档章节

图解Android 内存分析工具之Mat使用教程

fuchenxuan
 fuchenxuan
发布于 2016/05/23 22:26
字数 278
阅读 46
收藏 0

                感觉程序员都不太喜欢文字多的阅读,所以用图表达更简单易懂。

1.  安装

http://download.eclipse.org/mat/1.3/update-site/ 不多说

 

2.  使用

  2.1统计


 

2.2回收


 

3.    生成hprof文件,heap的快照


当然也可以android.os.Debug.dumpHprofData()方法手动生成等方法,这里只介绍最简单的最方便的方法。

 

4.    分析

之后就看到图如下:


4.1使用Histogram

使用表达式来筛选你要的信息


4.2 分析



可以通过右击Open Source File 来查看源码文件

 

4.3 Dominator Tree

使用Dominator 或着Histogram 通过排序可以发现比较大的Bitmap 或是Byte,我们可以单击右键 选择List Objects –》with incoming reference来查看引用在哪里,



使用with outgoing references 可以查看该对象持有哪些对象



5.    结尾

我们可以通过上面信息进行排序,方便于我们排查内存,泄露位置。

简单Mat使用教程目前就介绍到这了,以后再介绍mat的其他用法。欢迎补充和纠正

 

© 著作权归作者所有

fuchenxuan
粉丝 10
博文 29
码字总数 52850
作品 0
南昌
私信 提问
[Android]App 内存泄漏检查工具MAT

Android App发生内存泄漏,常见的有Bitmap 使用后沒有recycle(),Drawable 使用后沒有setCallback(null)等。 Eclipse 有个插件工具MAT(Memory Analyzer Tool)可以帮助定位内存泄漏的对象。 ...

清水湾2012
2013/08/01
475
1
Android应用内存泄漏的定位、分析与解决策略

Hello,大家好,我是Clock。翻了一下简书,发现有一个多月没有更新博客,本来今天打算和妹纸去电影院看《你的名字》,然后再去到处浪的。 结果因为妹纸公司临时有事,她不得不回公司一趟......

D_clock爱吃葱花
2018/06/29
0
0
Android中如何查找内存泄露

1、首先确定是否有内存泄露及哪个程序造成。 1.1、内存泄露已弹出out of memory对话框的情况。 这种情况很简单,直接看对话框就知道是哪个应用的问题了。然后再分析该应用是否是因为内存泄露...

chengche
2013/11/27
64
0
Android内存泄漏分析实战

内存泄漏简介 java可以保证当没有引用指向对象的时候,对象会被垃圾回收器回收,与c语言自己申请的内存自己释放相比,java程序员轻松了很多,但是并不代表java程序员不用担心内存泄漏。当jav...

拉偶有所依
2015/06/26
8.3K
1
Android内存优化(六)LeakCanary使用详解

相关文章 Android性能优化系列 Java虚拟机系列 1.概述 如果使用MAT来分析内存问题,会有一些难度,并且效率也不是很高,对于一个内存泄漏问题,可能要进行多次排查和对比。 为了能够简单迅速...

刘望舒
2017/09/10
0
0

没有更多内容

加载失败,请刷新页面

加载更多

经典系统设计面试题解析:如何设计TinyURL(二)

原文链接:https://www.educative.io/courses/grokking-the-system-design-interview/m2ygV4E81AR 编者注:本文以一道经典的系统设计面试题:《如何设计TinyURL》的参考答案和解析为例,帮助...

APEMESH
10分钟前
7
0
使用logstash同步MySQL数据到ES

概述   在生成业务常有将MySQL数据同步到ES的需求,如果需要很高的定制化,往往需要开发同步程序用于处理数据。但没有特殊业务需求,官方提供的logstash就很有优势了。   在使用logstas...

zxiaofan666
20分钟前
4
0
X-MSG-IM-分布式信令跟踪能力

经过一周多的鏖战, X-MSG-IM的分布式信令跟踪能力已基本具备, 特点是: 实时. 只有要RX/TX就会实时产生信令跟踪事件, 先入kafka, 再入influxdb待查. 同时提供实时sub/pub接口. 完备. 可以完整...

dev5
30分钟前
6
0
OpenJDK之CyclicBarrier

OpenJDK8,本人看的是openJDK。以前就看过,只是经常忘记,所以记录下 图1 CyclicBarrier是Doug Lea在JDK1.5中引入的,作用就不详细描述了,主要有如下俩个方法使用: await()方法,如果当前线...

克虏伯
33分钟前
6
0
实战项目-学成在线(八)

在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中心来管理微服务信息。 注册中心作用: 1、微服务数量众多,要进行远程调用就需要知...

lianbang_W
34分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部