文章目录
- 1. 复现错误
- 2. 分析错误
- 3. 解决错误
-
- 3.1 修改 VM options
- 3.2 修改堆内存大小
- 3.3 修改vm.options文件
1. 复现错误
今天在启动项目时,报出如下图错误:
即Error:java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObject[xxx.java]]@pos3465: GC overhead limit exceeded
。
2. 分析错误
GC Overhead Limit Exceeded
是java.lang.OutOfMemoryError
家族的一员,表示JVM
内存被耗尽。而Garbage Collection (GC)
是JVM
回收不再使用的对象,释放内存的过程。
OutOfMemoryError
是java.lang.VirtualMachineError
的子类,当JVM
资源利用出现问题时抛出,更具体地说,这个错误是由于JVM
花费太长时间执行GC
,且只能回收很少的堆内存时抛出的。
根据Oracle
官方文档,默认情况下,如果Java
进程花费98%
以上的时间执行GC
,并且每次只有不到2%
的堆被恢复,则