如果我将最大堆大小设置为 2 Gb,heapdump 的大小是多少?

What will be the heapdump size if I set the Max Heap size = 2 Gb?

我在 Websphere 服务器控制台上将最大堆大小设置为 2 GB。我想知道在内存不足错误期间创建的堆转储文件的大小。它们会大于 2GB 或等于 2GB 还是小于 2GB?

这取决于转储的类型。与IBM提供的文章相符:

1) PHD 转储大约占 Java 堆大小的 20%

2) HPROF 转储与 Java 堆大小

大致相同

3) IBM 系统转储 - 大约 Java 堆大小 + 30%

来源:https://www.ibm.com/developerworks/library/j-memoryanalyzer/

通常您会在 OutOfMemoryError 上获得带有 Javacore 的 PHD,因此您可以预计它大约占堆的 20%。但您必须记住,OutOfMemoryError 可能会在相当短的时间内多次抛出,因此可能会创建多个转储。