eclipse 报错:GC overhead limit exceeded

还是eclipse内存问题

 

修改eclipse.ini

-Xms512m

-Xmx1024m

必要的情况下, 添加

-XX:MaxPermSize=1024M  表示在编译文件时一直占有最大内存

 

转载于:https://www.cnblogs.com/maxiaodoubao/p/4683018.html

### 解决 Java 中 `GC overhead limit exceeded` 错误的方法 #### 1. 调整 JVM 参数 可以通过调整 JVM 的启动参数来应对该错误。具体来说,可以禁用 `-XX:+UseGCOverheadLimit` 这一选项,通过添加如下参数实现: ```bash -XX:-UseGCOverheadLimit ``` 这种方法虽然能够阻止 JVM 抛出此异常,但它仅是一种权宜之计,并未真正解决问题[^1]。 #### 2. 增加堆内存大小 如果程序频繁触发垃圾回收操作并最终导致 `GC overhead limit exceeded` 错误,则可能是因为可用的堆内存不足。此时可通过增加最大堆内存的方式缓解这一问题。例如: ```bash -Xmx512m ``` 上述命令将最大堆内存设置为 512MB。需要注意的是,在不同场景下,应根据实际需求合理配置堆内存大小。例如,当堆内存被设定得过小时(如仅为 10MB),即使启用了特定的 GC 算法(如 ParallelGC),仍可能出现类似的错误信息[^2]。 #### 3. 更改垃圾收集器 尝试切换至其他类型的垃圾收集器也可能有助于减少此类错误的发生频率。比如使用 G1 Garbage Collector 或 CMS (Concurrent Mark-Sweep) 收集器代替默认的选择。以下是启用 G1 收集器的一个例子: ```bash -XX:+UseG1GC ``` #### 4. 分析内存泄漏原因 很多时候,“GC Overhead Limit Exceeded” 是由潜在的内存泄漏引起的。因此建议利用专业的工具(如 VisualVM、Eclipse MAT)深入分析应用程序的行为模式,查找是否存在对象无法释放的情况。一旦发现泄露源,及时修复代码逻辑才是根本性的解决方案。 #### 示例代码片段展示如何修改 JVM 启动脚本以适应更高负载情况下的运行条件: ```bash java -Xms256m -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -jar your-application.jar ``` 以上命令设置了初始最小堆大小为 256 MB (`-Xms`) ,最大可达 1 GB(`-Xmx`);同时选择了 G1 垃圾收集策略以及其他优化参数。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值