统计
  • 建站日期:2019-12-01
  • 文章总数:2002 篇
  • 评论总数:2124 条
  • 分类总数:21 个
  • 最后更新:11月21日
文章 未分类

【java.lang.OutOfMemoryError:GC overhead limit exceeded异常解决方法】

程序员阿鑫
首页 未分类 正文

问题描述

由于同时启动了多个项目,导致电脑蓝屏重启,重启后idea启动项目,提示系统资源不足,和Information:java: java.lang.OutOfMemoryError: GC overhead limit exceeded错误,
【java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常解决方法】-程序员阿鑫-带你一起秃头-第1张图片
重新编译后启动,仍旧是相同错误
【java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常解决方法】-程序员阿鑫-带你一起秃头-第2张图片
【java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常解决方法】-程序员阿鑫-带你一起秃头-第3张图片

原因分析:

简单来说,java.lang.OutOfMemoryError: GC overhead limit exceeded发生的原因是,当前已经没有可用内存,经过多次GC之后仍然没能有效释放内存。
这个错误其实就是空闲内存与GC之间平衡的一个限制,当经过几次GC之后,只有少于2%的内存被释放,也就是很少的空闲内存,可能会再次被快速填充,这样就会触发再一次的GC。这就是一个恶性循环了,CPU大部分的时间在做GC操作,没有时间做具体的业务操作,可能几毫秒的任务需要几分钟都无法完成,整个应用程序就形同虚设了。经过监控发现,启动项目是CPU占有率达到100%。

解决方案:

出现这个错误,一般是因为JVM物理内存过小。默认的Java虚拟机最大内存仅为64兆,这在开发调试过程中可能没有问题,但在实际的应用环境中是远远不能满足需要的,除非你的应用非常小,也没什么访问量。否则你可能会发现程序运行一段时间后包java.lang.OutOfMemoryError的错误。因此我们需要提升resin可用的虚拟机内存的大小
设置idea运行内存
【java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常解决方法】-程序员阿鑫-带你一起秃头-第4张图片
【java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常解决方法】-程序员阿鑫-带你一起秃头-第5张图片
将最大运行内存设置为4096m后,重启项目,还是相同的错误

设置构建项目内存:
【java.lang.OutOfMemoryError:GCoverheadlimitexceeded异常解决方法】-程序员阿鑫-带你一起秃头-第6张图片
设置后重启项目,启动成功!
所以错误原因是构建项目内存不足导致,希望遇到相同问题小伙伴可以参考一下!

版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。
版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!

-- 展开阅读全文 --
这篇文章最后更新于2022-10-15,已超过 1 年没有更新,如果文章内容或图片资源失效,请留言反馈,我们会及时处理,谢谢!
java 根据IP地址获取地理位置
« 上一篇
羊了个羊一键获取全皮肤 (傻瓜式操作)
下一篇 »

发表评论