假設咱們項目中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