IT忍者神龜之Eclipse Memory Analyzer —— MAT查找內存泄漏工具

一、MAT是什麼?

MAT(Memory Analyzer Tool),一個基於Eclipse的內存分析工具,是一個快速、功能豐富的JAVA heap分析工具,它可以幫助我們查找內存泄漏和減少內存消耗。使用內存分析工具從衆多的對象中進行分析,快速的計算出在內存中對象的佔用大小,看看是誰阻止了垃圾收集器的回收工作,並可以通過報表直觀的查看到可能造成這種結果的對象。

二、如何使用MAT

本文以一段小代碼爲例,講述如何將dump文件導入MAT進行分析。

import java.util.ArrayList;
public class Test01 {
    byte[] byteArray = new byte[1 * 1024 * 1024];// 1MB
 
    public static void main(String[] args) {
        ArrayList<Test01> list = new ArrayList<>();
        try {
            for (int i = 1; i <= 40; i++) {
                list.add(new Test01());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
具體方法如下:

通過 -XX:+HeapDumpOnOutOfMemoryError 參數來生成dump文件(爲產生OOM,還使用了-Xms20m -Xmx20m參數);
使用Memory Analyzer打開生成的dump文件。“File->Open heap dump...”打開指定的dump文件後,將會生成Overview選項。
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章