一、安装Eclipse MAT插件
1.打开Eclipse->help->add->输入如下值
2.勾选Memory Analyzer for Eclipse IDE选项
3.一直点击next完成安装
二、使用
1.打开ADT的DDMS视图,在devices列表中选择一个进程(这里选择oschina app进行分析)并点击红框处,然后点击右边那个按钮
这时就会出现MAT的overview界面
2.界面分析
a.overview界面,如上图,提供一个概览界面
b.Histogram视图,它提供每个类的对象统计
c.支配树(Dominator Tree),提供程序中最占内存的对象 (described later in the article)
d.对象查询语言(Object Query Language Studio), 用来写MAT查询的工具
e.专家系统测试(Expert System Test)
i.堆Dump概况(Heap Dump Overview) –提供堆dump文件的详细信息
ii.疑似泄露点(Leak Suspects) – 提供内存泄露疑点占用内存大小,被谁加载的,以及类型等详细信息。
iii.Top Components – 提供占内存最多的对象信息,还包括可能的内存浪费信息.
f.查询浏览器(Query Browser) – 提供很多很有用的查询,有助于内存分析,本文将会介绍最有用的那些查询。根据地址查找对象 – 可以根据提供的一个地址查找某个特定的对象.
i.对象列表(List Objects) – 显示应用中所有对象,以及这些对象持有哪些其他对象和被哪些其他对象持有,(MAT会提示查询哪一个对象)。
ii.根据类显示对象(Show Objects by Class) – 列出每个类有多少对象.
iii.到GC根节点的路径(Path to GC Roots) – 显示到根节点的引用路径 (有好多过滤选项).
iv.合并到GC根节点的最短路径(Merge Shortest Paths to GC Roots) –找到从GC根节点到一个对象或一组对象的共同路径
v.即时支配(Immediate Dominators) – Finds and aggregates on a class level all objects dominating a given set of objects. 在给定的一组对象中,从类的层面上查找并聚合所有支配关系。(在垃圾回收理论中支配是指从某个对象在另外一个对象的保留堆中)
vi.显示保留集合(Show Retained Set) – 计算一个对象的保留堆大小.
g.饼图 – 显示持有内存最大的对象
h.直方图 – 显示每个类的对象数量
i.支配树 – 列出所有对象,并按照对象持有的保留堆大小排序
j.检查器 – 选择一个对象,并显示其详细信息