- 测试代码
1 package test; 2 3 import java.util.LinkedList; 4 import java.util.List; 5 import java.util.UUID; 6 7 public class DumpTest { 8 9 public static void main(String[] args) { 10 List<String> s=new LinkedList<String>(); 11 while (true) { 12 s.add(UUID.randomUUID().toString()); 13 } 14 } 15 }
- 配置测试用jvm参数
-Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:\test.hprof
- 说明
HeapDumpOnOutOfMemoryError 内存溢出时dump文件保存在HeapDumpPath指定的位置
-Xms20m 指定JVM初始内存为20m,-Xmx20m 指定JVM最大可用内存为20m
- 运行结果
- 软件准备
下载Eclipse Memory Analyzer 并解压, 地址 http://www.eclipse.org/mat/downloads.php
使用Eclipse Memory Analyzer打开d:\test.hprof文件
点击Finish之后生成分析报告