如何使用Memory Analyzer呢?
0.有內存溢出的代碼code。《深入理解java虛擬機》中代碼
1 package neutron.oom.heap; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 /** 6 * java堆內存溢出測試 7 * VM Args: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError 8 * @author zhanght 9 * 10 * result: 11 * java.lang.OutOfMemoryError: Java heap space 12 Dumping heap to java_pid21900.hprof ... 13 Heap dump file created [27535108 bytes in 0.120 secs] 14 */ 15 public class Heap_OOM { 16 17 public static void main(String[] args) { 18 List<Person> persons = new ArrayList<>(); 19 while(true){ 20 persons.add(new Person()); 21 } 22 } 23 24 } 25 26 class Person { 27 28 }
1.在eclipse設置必要的參數(參考一下截圖,由於對ubuntu使用截圖不是很熟練,所以借用別人的截圖來記錄)
參考博客地址:http://zpyueniao.blog.163.com/blog/static/14365064820147127443976/
然後就到了參數設置的頁面,按照A,B的順序設置參數:(-XX:+HeapDumpOnOutOfMemoryError)避免寫錯誤可以copy
有點盜圖的感覺,ubuntu使用不是非常熟練,截圖起來比較困難。
2.運行結果
3.查看日志輸出記錄文件
其中java_pid**.hprof是生成在workspace/Jvm_OOM下,這便是我們需要研究的異常信息
4.研究生成的異常信息java_pid**.hprof(繼續盜圖,ubuntu截圖好費勁,有待加強)
5.顯示結果如下
更具體內容可以參照:http://www.ibm.com/developerworks/cn/opensource/os-cn-ecl-ma/index.html?ca=drs-
從安裝到使用,具體的內容分析需要進一步學習