1。概要
JVMがOutOfMemoryErrorをスローする最後のケースは、JVMがGCの実行に多くの時間が費やされていると考えた場合です。
Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded
このエラーは、以下のすべての条件が満たされた場合にスローされます。
-XX:GCTimeLimit=N
指定されたフラグの値を超えて費やされた完全なGC時間。デフォルト値は98
(つまり、時間の98%がGCに費やされている場合、条件が満たされている)です。- フルGCで回復されたメモリは
-XX:GCHeapFreeLimit=N
、指定された値のフラグよりも小さくなります。デフォルト値は2です。これは、フルGC中に解放されたメモリがヒープの2%未満の場合、条件が満たされることを意味します。 - 上記の2つの条件は、5つの連続するフルGCに当てはまります(この値は調整できません)。<