XX:+ HeapDumpOnOutOfMemoryError最大文件大小限制

问题描述

-XX:+HeapDumpOnOutOfMemoryError当无法满足Java堆的分配或永久生成时,命令行选项告诉HotSpot VM生成堆转储。使用此选项运行不会产生任何开销,因此对于OutOfMemoryError需要很长时间才能浮出水面的生产系统很有用。

为了解决您面临的特定问题,可以使用以下纠正措施之一:

XX:HeapDumpSegmentSize

-XX:HeapDumpSegmentSize选项在生成分段的HPROF堆转储时指定适当的段大小。

格式

-XX:HeapDumpSegmentSize =大小[k | K] [m | M] [g | G]

java -XX:+HeapDumpOnOutOfMemory -XX:HeapDumpSegmentSize=512M myApp

预设值 1 GB

-XX:SegmentedHeapDumpThreshold

当堆使用量大于指定大小时,-XX:SegmentedHeapDumpThreshold选项将生成分段堆转储(.hprof文件,1.0.2格式)。

需要分段的HPROF转储格式才能正确生成包含4 GB以上数据的堆转储。如果-XX:SegmentedHeapDumpThreshold选项的值设置为大于4 GB,则可能无法正确生成堆转储。

格式 -XX:SegmentedHeapDumpThreshold =大小

java -XX:SegmentedHeapDumpThreshold=512M myApp

默认值 2 GB

解决方法

我正在使用XX:+HeapDumpOnOutOfMemoryErrorJVM标志运行Java进程,并看到以下输出:

java.lang.OutOfMemoryError: Java heap space
Dumping heap to /local/disk2/heaps/heapdump.hprof ...
Dump file is incomplete: file size limit

有没有办法解决这个问题?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”