1.編寫樣例
import java.util.ArrayList;
import java.util.List;
public class TestVM {
public static void main(String[] args) {
List<Object> list = new ArrayList<Object>();
while(true) {
Object object = new Object();
list.add(object);
}
}
}
2.配置虛擬機參數
-XX:+PrintGCDetails -Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError
3.運行程序
4.獲取dump日誌
E:\workspace\test\java_pid9736.hprof
5.分析dump日誌
使用JDK自帶的工具jhat
瀏覽器上輸入:http://localhost:7000/
這裏可以查看佔用內存從大到小的對象