4

我的程序抛出以下异常:

java.lang.OutOfMemoryError: unable to create new native thread

但是当我添加-XX:+HeapDumpOnOutOfMemoryError到 jvm 参数时,似乎 jvm 没有转储堆,因为我从来没有找到任何 .hprof 文件。为什么?

4

2 回答 2

5

请参阅此错误报告底部标记为“评估”的部分。

http://bugs.sun.com/view_bug.do?bug_id=6784422

-XX:+HeapDumpOnOutOfMemoryError您无法创建新的本机线程时,不会触发转储。

于 2013-05-14T08:30:37.013 回答
2

未能创建线程实际上并不是内存不足的情况。这通常是由于缺乏本机操作系统资源,而不是堆空间不足引起的。在这种情况下,堆转储可能不是您想要的……当前线程的堆栈转储可能会更有用。

于 2013-05-14T08:50:47.550 回答