Eclipse MAT 工具的使用(a)

来源:互联网 发布:毕业论文数据去哪里找 编辑:程序博客网 时间:2024/06/05 10:45

一、安装Eclipse MAT插件

1.打开Eclipse->help->add->输入如下值


2.勾选Memory  Analyzer for Eclipse IDE选项


3.一直点击next完成安装


ps:由于软件更新频繁,所以在线安装网址时常变化,推荐离线安装:在http://www.eclipse.org/mat/downloads.php下载插件后用eclipse进行离线安装。


二、使用

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.检查器 – 选择一个对象,并显示其详细信息

0 0