如果我将Max Heap size设置为2 Gb,那么heapdump的大小是多少?

如果我将Max Heap size设置为2 Gb,那么heapdump的大小是多少?

问题描述:

我在我的Websphere服务器控制台上将我的最大堆大小设置为2 GB。我想知道在Out of Memory错误期间创建的heapdump文件的大小。它们是否会大于2GB或等于2GB或小于2GB?如果我将Max Heap size设置为2 Gb,那么heapdump的大小是多少?

这取决于转储的类型。因此与由IBM提供的文章:

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

2)HPROF转储需要大约相同Java堆大小

3)IBM系统转储 - 关于Java堆的大小+ 30%

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

通常情况下,你会得到PHD用的javacore上OutOfMemoryError异常,所以你可以指望它是堆的20%左右。但是你必须记住,OutOfMemoryError可以在相当短的时间内抛出几次,因此可以创建多个转储。