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


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

1.安裝:

help-》install new software -》work with :  這里填寫eclipse版本:  Kepler - http://download.eclipse.org/releases/kepler(注意這里不同版本可能地址不同!!!)--》General Purpose Tools--》找到”Memory Analyzer“和”Memory Analyzer(Charts)“,並選取。安裝完后重啟eclipse.

2.提前修改配置:注意:由於后續分析過程需要大量內存,所以,后面打開分析后的文件時,可能會報內存溢出,需要調整eclipse內存,注意:網上很多都是騙人的,必須到eclipse目錄下找到eclipse.ini在最后:-Xms2048m -Xmx2048m 這樣既可,想動態看見eclipse運行內存:

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

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

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 配置后,當存溢出就會生成文件。如下圖:,測試代碼運行后,控制台輸出,見下圖:.

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM