MAT分析内存简述

工具准备

下载MAT(Memory Analysis Tools)工具:http://www.eclipse.org/mat/ 

安装好后,调整工具的最大内存使用量

编辑文件:/Applications/mat.app/Contents/Eclipse/MemoryAnalyzer.ini 

MAT分析内存简述

JVM分析

通过mat打开dump文件,打开后的首页,里面是一些堆的基本概要信息,比如空间大小、类的数量、对象实例数量、类加载器等等

MAT分析内存简述

Atcion里面提供了多种分析维度:

  • Histogram:可以列出内存中的对象,对象的个数以及大小。
  • Dominator Tree:可以列出那个线程,以及线程下面的那些对象占用的空间。
  • Top consumers:通过图形列出最大的object。
  • Leak Suspects:通过MAT自动分析泄漏的原因,输出一份简单的可疑点报告

名词描述

Shallow Size:对象自身占用的内存大小,不包括它引用的对象。

Retained Size:当前对象大小+当前对象可直接或间接引用到的对象的大小总和

 

在某一项上右键打开菜单选择 list objects :

  • with incoming references   列出持有当前对象的所有对象
  • with outgoing references   列出当前对象持有的所有对象

当前对象持有的所有对象,都称之为:outgoing references

​​​​​​​持有当前对象的所有对象,都称之为:incoming references

 

上一篇:JAVA语法糖之Lambda表达式、方法引用(Method References)


下一篇:【477】word实现图片自动编号&文中引用