Javaでは、発生したポイントを正確に見つけることができjava.lang.OutOfMemoryError
ますか?
アプリケーションが失敗する前に要求したメモリ量を正確に理解したいと考えています。
Javaでは、発生したポイントを正確に見つけることができjava.lang.OutOfMemoryError
ますか?
アプリケーションが失敗する前に要求したメモリ量を正確に理解したいと考えています。
以下に示すように、OutOfMemoryErrorをキャッチして、ランタイムに問い合わせることができます。
try {
//...
} catch (OutOfMemoryError er) {
// this will tell you how much you have used
long heapSize = Runtime.getRuntime().totalMemory();
System.err.println("memory used "+heapSize);
}
(ヒープがメモリ不足になると、OutOfMemoryErrorが発生するはずです)
コードのどこで失敗するかわからない場合は、シャットダウンフックを登録して、そこにheapSizeを出力してみてください。