Eclipse will throw GC overhead limit exceeded
error when it runs out of memory, normally while performing memory-consuming operations such as building workspace on big projects.
- See more at: http://docs.oseems.com/general/application/eclipse/fix-gc-overhead-limit-exceeded#sthash.VO6sefn8.dpuf
"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."
jvm gc行为中超过98%以上的时间去释放小于2%的堆空间时会报这个错误。
http://docs.oseems.com/general/application/eclipse/fix-gc-overhead-limit-exceeded
另一种处理方法:
在jvm启动参数中添加 "-XX:-UseGCOverheadLimit",该参数在JDK6中默认启用("-XX:+UseGCOverheadLimit")。
调整后的生产环境中使用的参数为:
JAVA_OPTS='-Xms512m -Xmx4096m -XX:MaxPermSize=128m -XX:-UseGCOverheadLimit -XX:+UseConcMarkSweepGC'