概述
在生产环境中,有时会遇到项目报 OOM 的错误,如果能知道是什么对象导致的,就能提高我们解决该问题的几率。这里,MAT就是分析 JVM 堆内存的常用工具之一。
创建dump文件
- 方式一:使用 jmap 命令创建,例如 jmap -dump:format=b,file=heapdump.hprof 27012(进程ID)
- 方式二:运行java程序的时候开启HeapDumpOnOutOfMemoryError参数(发生OOM的时候自动创建dump),例如 java -Xms10m -Xmx10m -XX:+HeapDumpOnOutOfMemoryError HelloWorld
分析dump文件
MAT工具下载地址:https://www.eclipse.org/mat/downloads.php
1.运行 MemoryAnalyzer.exe,点击 Open a Heap Dump,选择上一步生成的 dump 文件
2.分析堆内存