假设咱们项目中JVM内存溢出了,大项目中上百万行代码,是很难定位的。所以咱们须要借用一个Memory Analyzer工具,php
官网地址为:http://www.eclipse.org/downloads/download.php?file=/mat/1.7/rcp/MemoryAnalyzer-1.7.0.20170613-win32.win32.x8664.zip&mirrorid=1142,以下图,点击click here便可下载:eclipse
准备工做作好后,看一下代码模拟内存溢出:工具
先创建一个空类,以下:ip
public class Demo {内存
} 再创建一个主类:get
public class Main { public static void main(String[] args) { List demoList = new ArrayList<>(); while (true){ demoList.add(new Demo()); } } } 看运行以下:虚拟机
能够观察到运行内存不断升高,直到到达一个默认的限定值。能够看出图中报出的是内存溢出错误。那么咱们如何解决,和定位问题呢?这就须要上述的工具和虚拟机调参一块儿定位问题所在了。以下:class
快照就保存在咱们项目中来,以下图:>>>>阅读全文cli