java 生成hprof文件方式以及分析工具

在分析内存溢出、内存泄漏等内存问题时,Heap dump是关键。那么有哪些方法可以生成Heeap dump呢?

HeapDumpOnOutOfMemoryError

这是最关键的一种,在所有生产环境上运行java应用,一定要加上这个flag。因为谁也不能保证这次上的版本么有内存问题,等到程序崩掉的时候,发现没有保留堆内存快照,那么就是没有保留案发现场,浪费了最好的分析问题的场景。

使用示例:

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/data/tmp/heapdump.hprof -jar MyApp.jar

jcmd

jcmd是java 8引入的集大成的诊断工具。大家都应该尽量熟悉这个工具。

# 使用方式:

jcmd GC.heap_dump

# 示例:

jcmd 3873 GC.heap_dump /data/tmp/heapdump.hprof

jmap

jmap是传统的,也应该是当前大家最熟悉的生成堆快照的方法:

# 使用方法:

jmap -dump:format=b,file=

# 示例:

jmap -dump:live,format=b,file=/data/tmp/heapdump.hprof 3873

其中live的意思是只保留存活的对象。否则所有对象(包括已经被gc的对象)都会被输出,这在线上环境heap比较大,运行时间比较长的情况线下,会导致heap过大,没有必要。
原文:java 生成hprof_Java应用问题定位系列——4种常见生成Heap Dump(堆快照)的方法_zhengjw666的博客-CSDN博客https://blog.csdn.net/weixin_35869628/article/details/114110755

打开hprof文件
jvisualvm:
jvisualvm分析hprof文件_keep_learn的专栏-CSDN博客_jvisualvm分析hprofhttps://blog.csdn.net/keep_learn/article/details/106876610JProfiler:
【知识积累】使用JProfiler分析dump文件_Darren的博客-CSDN博客_jprofiler分析dump文件icon-default.png?t=LA92https://blog.csdn.net/axin1240101543/article/details/105142141/

 

  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Mac hprof 内存分析工具是一种用于分析 Java 应用程序内存使用情况的工具。它通过捕获 Java 虚拟机的堆转储文件(hprof 文件)来提供详细的分析报告和图形化界面,帮助开发人员识别和解决内存泄漏、内存溢出等内存相关问题。 使用 Mac hprof 内存分析工具,我们可以查看应用程序中每个对象的实际大小、引用关系和分配情况。通过分析对象的存活关系,我们可以定位内存泄漏的源头,找到不再使用的对象、未经妥善释放的资源等问题。 除了基本的内存信息分析,Mac hprof 内存分析工具还提供了一些有用的功能。比如,它可以生成堆转储文件的统计数据和图表,帮助开发人员更直观地了解内存使用情况。此外,它还支持生成内存泄漏报告,指导开发人员采取相应的措施修复问题。 在使用 Mac hprof 内存分析工具时,我们需要首先在 Java 虚拟机启动时启用堆转储功能,生成 hprof 文件。然后,我们可以使用 Mac hprof 工具来加载和分析这个转储文件。该工具提供了一个用户友好的界面,显示了应用程序的内存使用情况和相关统计信息。 总而言之,Mac hprof 内存分析工具是一个有用的工具,可帮助开发人员诊断和解决Java应用程序的内存相关问题。通过分析堆转储文件,我们可以深入了解内存使用情况,发现内存泄漏和资源浪费等问题,并采取相应的措施来优化应用程序的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值