1. 程式人生 > >JAVA調優之工具:jmap+mat

JAVA調優之工具:jmap+mat

用途:用來查詢記憶體洩露
介紹
 
         Jmap:jdk自帶,主要用來檢視JVM各個代的記憶體情況或記憶體佔用狀況, 支援匯出整個JVM記憶體資訊
          MAT :Eclipse 記憶體分析工具:http://www.eclipse.org/mat
使用
1、dump出記憶體資訊:jmap -dump:format=b,file=dump.bin pid
2、eclipse 安裝好mat外掛: http://download.eclipse.org/mat/1.0/update-site/
3、eclipse直接開啟dump的檔案:dump.bin(注意:eclipse 記憶體設定大一點)
4、mat工具的具體使用網上比較多,還是比較好使用。分析後的檔案可以生成html格式的,方便離線使用

試驗程式碼

public class OutOfMemory {
    private String str;
    public OutOfMemory(String str) {
        this.str = str;
    }
    public static void main(String[] args) throws InterruptedException {
        HashMap<Integer, OutOfMemory> map = new HashMap<Integer, OutOfMemory>();
        String s = "O";
        for (Integer i = 0; i < 100; i++) {
            s += s;
            OutOfMemory o = new OutOfMemory(s);
            map.put(i, o);
            Thread.sleep(2000);
            System.out.println(i);
        }
    }
}

執行:java –Xmx128m –Xms128m OutOfMemory