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/
这里可以查看占用内存从大到小的对象