我最近了解了 -XX:+HeapDumpOnOutOfMemoryError
VM 参数,并被告知应该将其添加到 HotSpot JVM,因为默认情况下它是关闭的。我的一位同事评论说也许我们不应该这样做,因为他听说这样做有一些陷阱,但他不记得那是什么了。我讨厌这样含糊其辞的陈述,但我试图在做出最终决定之前进行尽职调查,因此正在做一些调查。
我能找到的大多数对它的引用更多的是关于如何使用它(以及转储文件所在的位置),并且没有谈到使用它的任何问题。这个SO问题引用了一个不同的论点,但答案似乎也与这个相关,并且暗示没有问题:Why is this Hotspot JVM option not the default? -XX:+PrintConcurrentLocks
有人知道有什么理由不转-XX:+HeapDumpOnOutOfMemoryError
吗?
最佳答案
主要缺点是,每次新程序出现此错误时(该 JVM 第一次发生此错误),它都会创建一个大文件。如果你有一个 2 GB 的堆,它每次都会创建一个那么大的文件,用你不需要的堆转储填充磁盘空间。由于它仅用于调试/开发目的,因此对大多数最终用户来说没有用。
关于java - HotSpot JVM 选项 HeapDumpOnOutOfMemoryError - 有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13420649/