Java 使用jhat分析堆的内存开销是多少?

Java 使用jhat分析堆的内存开销是多少?,java,heap,overhead,jhat,Java,Heap,Overhead,Jhat,jhat是分析Java堆转储的一个很好的工具,但是对于大型堆来说,它很容易浪费很多时间。给jhat一个运行时堆太小,可能需要15分钟才能失败并耗尽内存 我想知道的是:根据heapdump文件的大小,我应该给jhat多少-Xmx heap有经验法则吗?现在只考虑二进制堆转储 一些非常有限的实验表明,它至少是堆转储大小的3-4倍。我能够用-J-mx12G分析一个3字节的堆文件,并对其进行更改 其他人是否有更确凿的实验数据,或者了解jhat在运行时如何表示堆对象 数据点: 表示开销是5倍,但我在最新

jhat是分析Java堆转储的一个很好的工具,但是对于大型堆来说,它很容易浪费很多时间。给jhat一个运行时堆太小,可能需要15分钟才能失败并耗尽内存

我想知道的是:根据heapdump文件的大小,我应该给jhat多少-Xmx heap有经验法则吗?现在只考虑二进制堆转储

一些非常有限的实验表明,它至少是堆转储大小的3-4倍。我能够用-J-mx12G分析一个3字节的堆文件,并对其进行更改

其他人是否有更确凿的实验数据,或者了解jhat在运行时如何表示堆对象

数据点:

  • 表示开销是5倍,但我在最新型号jhats(1.6.0_26)上的实验表明它并没有那么糟糕
  • 表示约10倍的开销
  • 一位同事支持10x理论:2.5gb堆文件与-J-mx23G一起失败
  • 还有一位同事得到了一个6.7GB的转储,可以与30GB的堆一起工作,开销是原来的4.4倍

您是否尝试过将Eclipse内存分析器作为jhat的替代品?Eclipse内存分析器很好。打开大堆转储的另一种选择是或。最后一个不是免费的。我用过内存分析器,它非常好。好的,好的,我一定会看看Eclipse的MAT。尽管如此,我仍然有兴趣了解jhat。在任何机器上删除转储、启动jhat和发送链接的功能都非常有用。Eclipse内存分析器和SAP的项目不是一回事吗?