java - HotSpot JVM 选项 HeapDumpOnOutOfMemoryError - 有问题吗?

标签 java out-of-memory jvm-arguments

我最近了解了 -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/

相关文章:

java - 尝试首先执行 Retrofit onResponse

java - 如何从机器属性获取虚拟机创建时间

java - Tomcat:java.io.IOException:无法创建目标 "xxx"目录”

ruby - Sidekiq 在工作人员完成后不释放内存

java - 调整 CloudBees 应用程序的 JVM 参数

java - 当Java线程设置为null时会发生什么?

c - 如何在C中为未知大小的结构数组分配内存

gwt - 当 IntelliJ 的 "make"调用它时,如何增加 GWT Maven 插件使用的堆大小?

ant - 在 Jenkins 中增加 Findbugs 的 maxHeap arg

java - 在 ant 任务中指定 jvm 参数