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

时间:2011-10-05 21:11:19

标签: java heap overhead jhat

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

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

一些非常有限的实验表明它的至少是堆转储大小的3-4倍。我能够用-J-mx12G分析一个三改万亿字节的堆文件。

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

数据点:

  • this thread表示5倍的开销,但我对后期模型jhats(1.6.0_26)的实验表明它不是那么糟糕
  • this thread表示开销<10x
  • 一位同事支持10x理论:2.5gb堆文件失败并带有-J-mx23G
  • 另一名同事获得了一个6.7 gb转储,用于30 gb堆,开销为4.4 x。

0 个答案:

没有答案