-XX:+ HeapDumpOnOutOfMemoryError多堆转储创建

时间:2014-11-19 07:23:42

标签: java java-ee

"-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp"此参数将有助于在达到服务器限制时自动进行堆转储。

http://www.oracle.com/technetwork/java/javase/clopts-139448.html#gbzrr

我可以看到有关上述链接的详细信息,但是," OutOfMemoryError "消息在我的服务器日志时间内打印了很多次。

那么,如果多次出现错误消息,JVM会进行多次堆转储吗?

此致 彼得

3 个答案:

答案 0 :(得分:2)

当指定此标志时,oracle jvm仅在第一个OOM上创建堆转储。但是,如果jvm进程仍处于活动状态且响应迅速,则可以手动创建多个堆转储。一点点谷歌搜索:
-XX:+HeapDumpOnOutOfMemoryError not creating hprof file in OOM

答案 1 :(得分:0)

“OutOfMemoryError”错误还有其他原因。

无法创建新线程就是一个例子。

此外,当OutOfMemoryError异常展开堆栈时,可能会释放内存,从而允许应用程序(稍微)恢复而不会崩溃。

答案 2 :(得分:0)

这取决于JVM。我认为Oracle JVM只转储一次。