-XX:+ HeapDumpOnOutOfMemoryError指定内存

时间:2010-08-13 19:21:07

标签: java performance jvm

我想指定使用-XX:+HeapDumpOnOutOfMemoryError VM参数时使用的内存量。通常,我使用-Xmx<size> VM参数控制堆大小。但是当我这样做时,永远不会发生内存不足错误。有没有人知道指定这样一个参数的方法,以便当堆大小(甚至堆栈大小)达到该参数时,抛出内存不足错误并且我可以获得堆转储?

感谢。

2 个答案:

答案 0 :(得分:0)

-Xmx是与-Xss一起执行此操作的正确方法,因为堆栈大小会导致StackOverflowException。如果你没有得到预期的OutOfMemoryError,你可能需要为-Xmx尝试更低的值,因为在它抛出错误之前JVM往往会超出这个限制,它似乎忽略了15米以下的任何东西。 -Xmx

答案 1 :(得分:0)

要比x4u提供的内容更准确地回答您的问题,将有助于了解以下内容:

问题#1:当您明确设置-Xmx时,您要将其设置为什么?两个堆大小之间有什么区别(有和没有-Xmx)。我假设你明确设置它时会增加堆大小。

问题#2 :您的程序是终止还是永久运行?如果它终止并且您没有看到OOM,那么可能是您没有泄漏,您只是没有为Java进程提供足够的内存。