利用JMAP+MAT分析Java Heap Dump

本文介绍如何使用JMAP生成HeapDump文件及使用jhat和MAT进行分析。包括在JVM运行中或OOM时生成Dump文件的方法,以及不同工具的适用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果你的Heap Dump文件超过了几百MB,那就不要再寄希望于jhat了,因为jhat需要数倍于dump文件的内存。这个时候你可以用MAT(Memory Analyzer),用MAT你可以在有2GB可用内存的机器上分析大约1GB左右的Dump文件。

生成Heap Dump文件的方法:

JMAP(Java Memory Map)

方法一:让运行中的JVM生成Dump文件
/usr/java/jdk/bin/jmap -F -dump:format=b,file=/path/to/heap/dump/heap.bin PID

注意:1.jmap的路径也就是jdk的路径要找对,是当前运行应用的所启动的jvm的jdk.

  2.file是放置生成文件的路径。

例如:

 /opt/xx/xx/jdk/linux64/bin/jmap -F -dump:format=b,file=/opt/xx/xx/dump/heap.bin 19601.


方法二:让JVM在遇到OOM(OutOfMemoryError)时生成Dump文件
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heap/dump

用jhat分析Dump文件
注:只有在Dump文件比较小的时候才适合用jhat分析Dump文件
jhat(Java Heap Analysis Tool)
jhat -stack false -refs false -J-Xmx2g /path/to/heap/dump/heap.bin

用MAT分析Dump文件
MAT(Memory Analyzer)

http://www.eclipse.org/mat/

安装MAT插件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值