1.Eclipse Memory Analyzer(简称MAT)是一个功能丰富且操作简单的JVM Heap Dump分析工具,可以用来辅助发现内存泄漏减少内存占用。
2.简单使用
2.1.启动之后打开 File - Open Heap Dump… 菜单,然后选择生成的Heap DUmp文件,选择 “Leak Suspects Report”,然后点击 “Finish” 按钮。
2.2.操作完成之后会显示如图所示界面
1.问题出现的原因是:main线程(线程号为:0xf6560000)中有一个局部变量(数组类型)占用内存达到了243,270,680字节,占用了总的堆内存的99.92%,导致了OOM
2.Keywords:问题是出现在OtherTest类的main方法中的第16行
2.3.点击Details查看详细信息
1.可以看到,问题出现在java.util.ArrayList中
2.可以继续查看其他功能,例如Thread Properties、Thread Stack(同样是包含在Details中的)
2.1.查看Thead Properties功能的详细信息
该线程占用的堆大小
2.2.查看Thead Stack功能
查看线程的栈信息,可以看到问题出现在OtherTest类的main方法的第16行