使用MAT进行java内存溢出分析
作者:binMAT:Memory Analyzer tool
首先先去下载:https://www.eclipse.org/mat/downloads.php
然后打开工具,打开hprof后缀文件
选择leak suspects Report
如图,可以看到
其中
Shallow Size,是对象本身的占的内存
Retained Size,是对象本身加上引用对象的内存
percentage是占用百分比
下面是内存溢出的示例代码,启动虚拟机参数-XX:+HeapDumpOnOutOfMemoryError -Xmx10m -Xms10m:
public static void main(String[] args) throws Exception{ List list = new ArrayList<>(); while(true){ list.add(new String("test")); System.out.println(list.size() + "--" + Runtime.getRuntime().totalMemory()/(1024*1024)+"M"); } }