java.lang.OutOfMemoryError: GC overhead limit exceeded

      官方文档解释:gc花了98%的时间却只回收了不到2%的heap,就会抛出这个异常。-XX:-UseGCOverheadLimit只是禁用这个检查。

http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html#par_gc.oom---》Excessive GC Time and OutOfMemoryError
GC官方文档

Excessive GC Time and OutOfMemoryError

The parallel collector will throw an OutOfMemoryError if too much time is being spent in garbage collection: if more than 98% of the total time is spent in garbage collection and less than 2% of the heap is recovered, an OutOfMemoryError will be thrown. This feature is designed to prevent applications from running for an extended period of time while making little or no progress because the heap is too small. If necessary, this feature can be disabled by adding the option -XX:-UseGCOverheadLimit to the command line.

Measurements

The verbose garbage collector output from the parallel collector is essentially the same as that from the serial collector.

 

个人觉得
(1) 可以尝试加大Xmx,或其他参数尝试性调整;
(2) 如果是eclipse或mvn过程报错,可以使用-XX:-UseGCOverheadLimit;
(3) 如果是应用报错,先分析内存泄露;

 

你可能感兴趣的:(java.lang.OutOfMemoryError: GC overhead limit exceeded)