简介
Java自带的JVisualVm
可以用来分析Java堆内存,可以用来排查内存泄漏和内存浪费的问题,但是功能不是特别强大, MAT(Memory Aanlysis Tool)是一款更优的工具。
MAT功能
功能组
全局信息
直方图
按照类的数量倒序的视图。
Shallow Heap
: 浅内存,即类本身占用的内存。
Retained Heap
:深内存,即类包括自身的和 引用的内存。
支配树
对象 按照其引用的内存size 倒序的视图
Leak suspect
点击 details
查看明细
其他菜单
在Dominate tree 上,任一对象实例上,右键,可以查询引用
List Objects -> with outgoing references
:这个对象 持有 哪些 对象的引用。
List Objects -> with incomingreferences
:这个对象的引用 被 哪些 对象持有。
show Objects by class -> with outgoing references
:这个对象 持有 哪些 对象的引用,按类分组。
show Objects by class -> with incomingreferences
:这个对象的引用 被 哪些 对象持有,按类分组。
Java Collections
:对集合对象的分析
附录
参考
MAT的下载地址:https://download.eclipse.org/mat/1.4/update-site/