JAVA調優之工具:jmap+mat
阿新 • • 發佈:2019-02-12
用途:用來查詢記憶體洩露
介紹
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