2016-02-25 42 views
4

我與服務器上的Java的openmpi(64GB內存),工作排序一個大整型數組(長度爲1十億)。 但是,當我增加數組的長度,我得到這個錯誤:錯誤「無法寫入核心轉儲」?

A fatal error has been detected by the Java Runtime Environment:

...

Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again

什麼是核心轉儲?什麼可能是導致這個錯誤的錯誤?以及如何解決這個錯誤?

+0

JVM是用C寫這似乎是用C語言編寫的本機功能出現了問題,該操作系統尚未配置保存轉儲... –

+0

這可能意味着內存JVM的思想被保留了下來,它並沒有真正可用。你確定你需要對BigInteger進行排序,因爲它們比使用'long'或'int'要慢得多,而且使用的內存要多得多。我會盡量減少JVM堆的大小。 –

+0

我不是指BigInteger數組,而是整數類型的大數組。 @PeterLawrey – user3625605

回答

2

「核心轉儲(使用Unix的說法),內存轉儲或系統轉儲[1]包含計算機程序在特定時間工作內存的記錄狀態,通常是程序崩潰或以其他方式終止異常「作爲維基百科的解釋。請參照https://en.wikipedia.org/wiki/Core_dump

I think this exception occurs because of java run out of memory.pls refer http://stackoverflow.com/questions/18078859/java-run-out-of-memory-issue