Eclipse Memory Analyzer(MAT),內存泄漏插件,安裝使用一條龍

網上文檔不少,但最初都有問題。整理一份,做爲備份。使用過程:開發代碼寫完後,對可能出現內存溢出的代碼,添加配置文件,生成.hprof文件,用memory Analyzer分析排查問題,且泄漏內存大小可配置。具體安裝測試一條龍以下:eclipse

1.安裝:測試

help-》install new software -》work with :  這裏填寫eclipse版本:  Kepler - http://download.eclipse.org/releases/kepler(注意這裏不一樣版本可能地址不一樣!!!)--》General Purpose Tools--》找到」Memory Analyzer「和」Memory Analyzer(Charts)「,並選取。安裝完後重啓eclipse.spa

2.提早修改配置:注意:因爲後續分析過程須要大量內存,因此,後面打開分析後的文件時,可能會報內存溢出,須要調整eclipse內存,注意:網上不少都是騙人的,必須到eclipse目錄下找到eclipse.ini在最後:-Xms2048m -Xmx2048m 這樣既可,想動態看見eclipse運行內存:線程

3.編寫內存泄漏測試代碼code

大體是往ArrayList中循環添加大量字符串。這對20M的內存設置來講確定是會溢出的。blog

1     @Test
2     public void testOutOfMemory(){
3         List<String> list = new ArrayList<String>();
4         for(int i=0;i<10000000;i++){
5            String str = new String();
6            list.add(str);
7         }
8     }

 

4.運行參數配置:Run as-->Run Configurations-->Arguments-->VM arguments:-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError,配置20M當作內存溢出上限,方便測試,具體大小你們能夠本身控制。-XX:+HeapDumpOnOutOfMemoryError 配置後,當存溢出就會生成文件。以下圖:,測試代碼運行後,控制檯輸出,見下圖:.ip

5.代碼運行後,eclipse下刷新工程可見,生成了hprof文件,雙擊打開(注意,此處就是第二步設置參數的緣由)。默認選擇第一項,finish便可。,具體分析:,上圖可見,是主線程的ArrayList內存溢出了。內存

相關文章
相關標籤/搜索