如何分析jvm的内存溢出

查看整个内存状况

jmap -heap [pid]

本地运行一个test程序后,找到对应java进程id,输入jmap时发生错误


发现是本地装了两个版本的jdk,需要进入到一个jdk的bin目录下执行jmap命令。



查看堆中对象详细占用情况

jmap -histo [pid]


导出整个JVM的dump文件

jmap -dump:format=b,file=文件名 [pid]

jhat是sun 1.6及以上版本中自带的一个用于分析JVM 堆DUMP 文件的工具,基于此工具可分析JVM HEAP 中对象的内存占用情况
jhat -J-Xmx1024M [file]

执行后等待console 中输入start HTTP server on port 7000 即可使用浏览器访问 IP:7000


打开浏览器,输入http://localhost:7000



点击show heap histogram


可以看出各个类的实例数量和使用的内存大小。

eclipse Memory Analyzer

Eclipse 提供的一个用于分析JVM 堆Dump文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。


查看堆栈信息

jstack [pid]


jvm调优成熟的工具已经有很多:jconsole、大名鼎鼎的VisualVM,IBM的Memory Analyzer等等。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值