jmap和jhat

本文介绍了如何使用jmap和jhat进行Java内存分析。通过`jmap -heap`查看内存区域分配,`jmap -histo`了解对象内存占用,`jmap -dump`生成堆内存快照,以及使用`jhat`在浏览器中以图形化方式分析堆转储快照,帮助开发者定位内存问题。

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

jmap -heap PID

比如Eden区总容量、已经使用的容量、剩余的空间容量,两个Survivor区的总容量、已经使用的容量和剩余的空间容量,老年代的总容
量、已经使用的容量和剩余的容量。
但是这些信息大家会想了,其实jstat已经有了啊!对的,所以一般不会用jmap去看这些信息,毕竟他信息还没jstat全呢,因为没有gc
相关的统计。

使用jmap了解系统运行时的对象分布

其实jmap命令比较有用的一个使用方式,是如下的:
jmap -histo PID
这个命令会打印出来类似下面的信息:
在这里插入图片描述
这个就很有意思了,各位同学看上述打印出来的东西,他会按照各种对象占用内存空间的大小降序排列,把占用内存最多的对象放在最
上面。
所以如果你只是想要简单的了解一下当前jvm中的对象对内存占用的情况,只要直接用jmap -histo命令即可,非常好用
你可以快速了解到当前内存里到底是哪个对象占用了大量的内存空间。

使用jmap生成堆内存转储快照

jmap -dump:live,format=b,file=dump.hprof PID
这个命令会在当前目录下生成一个dump.hrpof文件,这里是二进制的格式,你不能直接打开看的,他把这一时刻JVM堆内存里所有对
象的快照放到文件里去了,供你后续去分析。

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值