我的程序引發以下異常:HeapDumpOnOutOfMemoryError沒有創造HPROF
java.lang.OutOfMemoryError: unable to create new native thread
但是,當我加入-XX:+HeapDumpOnOutOfMemoryError
到JVM參數,但似乎JVM沒有轉儲堆,因爲我從來沒有發現任何.hprof文件。爲什麼?
我的程序引發以下異常:HeapDumpOnOutOfMemoryError沒有創造HPROF
java.lang.OutOfMemoryError: unable to create new native thread
但是,當我加入-XX:+HeapDumpOnOutOfMemoryError
到JVM參數,但似乎JVM沒有轉儲堆,因爲我從來沒有發現任何.hprof文件。爲什麼?
請參閱此錯誤報告底部標有「評估」的部分。
http://bugs.sun.com/view_bug.do?bug_id=6784422
的-XX:+HeapDumpOnOutOfMemoryError
不會觸發轉儲當你無法創建新的本地線程。
未能創建線程實際上並不是內存不足的情況;這通常是由於本機操作系統資源的缺乏,而不是缺少堆空間。在這種情況下堆轉儲可能不是你想要的......當前線程的堆棧轉儲可能更有用。
爲什麼堆棧轉儲更有用? 「本地操作系統資源」的含義是什麼?你能否解釋更多:) – simomo 2018-03-01 02:36:32