文章目录
- 问题简述
- 问题分析
- 解决方案
- 解决方案一
- 解决方案二
问题简述
以前项目启动都是好好的,没有任何问题,最近启动时却报错:
java.lang.OutOfMemoryError: ...(此处忽略) GC overhead limit exceeded
问题分析
错误是发生在编译阶段,而不是运行阶段。通过查询相关资料发现,
- idea编译Java项目使用的虚拟机和idea软件自身使用的虚拟机是分开的(也就是独立的进程)
- 只需要给编译器使用的虚拟机加内存就可以解决问题
解决方案
解决方案一
解决方案二
通过上面的操作依旧无法解决我的问题,于是我在报错前打印的日志附近打断点,一步步调试,发现在项目启动时,需要从数据库中读入数据到缓存,统计数据大概10万条,而tomcat的vm option我设置的是:
-Xms25m
-Xmx25m
怀疑可能是值太小了,设置成
-Xms2048m
-Xmx2048m
后顺利解决这个问题