1

Javaでは、発生したポイントを正確に見つけることができjava.lang.OutOfMemoryErrorますか?

アプリケーションが失敗する前に要求したメモリ量を正確に理解したいと考えています。

4

1 に答える 1

2

以下に示すように、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を出力してみてください。

于 2012-04-28T16:54:26.443 に答える