当我在使用MyEclispe IDE创建Maven项目的时候出现  "An internal error occurred during: “Build Project”. GC overhead limit exceeded",刚开始以为我clean一下,然后重启MyEclipse就可以了,后来发现并不是这样。既然出错就要去寻找问题的根源,那么问题出在哪里呢?

在解决这个问题的时候,我寻找了一些资料,发现GC overhead limt exceed检查是Hotspot VM 1.6定义的一个策略,通过统计GC时间来预测是否要OOM了,提前抛出异常,防止OOM发生。Sun 官方对此的定义是:“并行/并发回收器在GC回收时间过长时会抛出OutOfMemroyError。过长的定义是,超过98%的时间用来做GC并且回收 了不到2%的堆内存。用来避免内存过小造成应用不能正常工作

这时候就需要认真的去考虑了,既然是配置内存出了问题,那么就应该去到相应的配置文件下面去找,MyEclispe IDE的相关内存配置文件在myeclispe.ini,当然,在我们打开的时候就会清楚的看到下面的这一段代码:

  1. <span style="background-color: rgb(51, 255, 51);">#utf8 (do not remove)
  2. -startup
  3. plugins/org.eclipse.equinox.launcher_1.3.0.v20130327-1440.jar
  4. --launcher.library
  5. plugins/org.eclipse.equinox.launcher.i18n.win32.win32.x86_64_3.2.0.v201103301700
  6. -vm
  7. binary/com.sun.java.jdk7.win32.x86_64_1.7.0.u45/bin/javaw.exe
  8. -install
  9. D:\mytools\MyEclipse
  10. -vmargs
  11. -Xmx768m
  12. -XX:MaxPermSize=320m
  13. -XX:ReservedCodeCacheSize=64m
  14. -Dosgi.nls.warnings=ignore</span>

可以很清楚的看到有一段 -Xmx768m 的配置,它是作为最大占有内存,当出现刚刚的错误的时候说明当前已经超过这个设定值,所以我们可以将这个最大占有内存做下修改,调整为1024m,目前这个设定值已经足够使用了,当然有的人会说将" -XX:MaxPermSize",同样也设定为1024m或者更大的时候,但是我感觉没必要,当我们在编译文件的时候就让它一直处在最大占有内存,往往会出现程序卡住的现象。所以一切还是要根据具体情况做具体分析以及解决,达到最佳的效果。

出现GC overhead limit exceeded 的解决方案的更多相关文章

  1. unable to execute dex:GC overhead limit exceeded unable to execute dex:java heap space 解决方案

    最近做厂商适配,厂商提供了一部分Framework的jar包,把jar包通过Add Jar放到Build Path中, 在生成APK过程中,Eclipse长时间停留在100%那个进度. 最后Eclip ...

  2. java.lang.OutOfMemoryError GC overhead limit exceeded原因分析及解决方案

    最近一个上线运行良好的项目出现用户无法登录或者执行某个操作时,有卡顿现象.查看了日志,出现了大量的java.lang.OutOfMemoryError: GC overhead limit excee ...

  3. GC overhead limit exceeded解决

    java.lang.OutOfMemoryError: GC overhead limit exceeded解决   一.异常如下:Exception in thread "main&quo ...

  4. java.lang.OutOfMemoryError:GC overhead limit exceeded解决方法

    异常如下:Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded 一.解 ...

  5. eclipse错误GC overhead limit exceeded

    1.eclipse以外关闭后打开错误如下图: 2.具体详情: 3.An internal error occurred during: "Building workspace". ...

  6. java.lang.OutOfMemoryError:GC overhead limit exceeded

    在调测程序时报java.lang.OutOfMemoryError:GC overhead limit exceeded 错误 错误原因:在用程序进行数据切割时报了该错误.由于在本地执行数据切割测试的 ...

  7. 解决:Unable to execute dex: GC overhead limit exceeded

    转自http://blog.sina.com.cn/s/blog_6e334dc70101hnug.html Android打包时下面的错误: Unable to execute dex: GC ov ...

  8. java 异常 java.lang.OutOfMemoryError: GC overhead limit exceeded 解决

    一.异常如下: Exception in thread "main" java.lang.OutOfMemoryError: GC overhead limit exceeded ...

  9. [SpringBoot/SpringMVC]从Webapp下载一个大文件出现java.lang.OutOfMemoryError: GC overhead limit exceeded怎么办?

    本文示例工程下载:https://files.cnblogs.com/files/xiandedanteng/WebFileDownload20191026.rar 制作一个Webapp,让其中一个网 ...

随机推荐

  1. day11函数的进阶动态参数,命名空间,作用域,第一类对象

    一.习题收藏 5.写函数,计算传入字符串中[数字].[字母].[空格] 以及 [其他]的个数,并返回结果. # def func4(s): # dic = { # 'num':0,'alpha':0, ...

  2. List ArrayList LinkedList 集合三

    因为List是有顺序的说以API中定义了 方法来处理List Collections 接口:用于操作List集合有排序sort(list);查找int binarySearch(List,obj);c ...

  3. conda 和 pip 安装,更新,删除

    安装: pip install xxx conda install xxx 更新: pip  install --upgrade xxx conda update xxx 删除: pip uninst ...

  4. M - Tempter of the Bone(DFS,奇偶剪枝)

    M - Tempter of the Bone Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & % ...

  5. RocketMq的安装使用

    RocketMq的安装使用 .一.预备环境 1.系统 Windows 2. 环境 JDK1.8.Maven.Git 1.下载 1.1地址:http://rocketmq.apache.org/rele ...

  6. 一个有趣的IP不同的问题?

    1.我们已经知道了内网和外网的显示是不同的. 2.今天发现了我的飞Q传输上显示的ip和电脑上网络中显示的ip不同,但是传输文件是可以的,至于这个问题目前没有找到合理的解释,解释这个问题,但是这样就奇怪 ...

  7. <2013 06 29> In Deutschland. Thinking in Mechanism, EE, CS, etc.

    一 在德国近一个月了,主要去了慕尼黑周边的几个景点,天鹅城堡啊,国王湖啊,然后就是在市区逛,玛丽安广场,伊萨河,英国公园,德意志博物馆... ... 总体的印象是非常好的,只是自己不怎么懂德语,但这里 ...

  8. CentOS 7.4 下设置定时任务

    cron介绍 我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件. /var/spool/cron/ 目 ...

  9. OFMessageDecoder 分析

         OFMessageDecoder 继承了抽象类 FrameDecoder.FrameDecoder 会将接收到的ChannelBuffers 转换成有意义的 frame 对象.在基于流的传输 ...

  10. 003-诠释 Java 工程师【一】

    一.基础篇 1.面向对象的三大特性 继承.封装.多态 什么是继承? ①继承是面向对象程序设计能够提高软件开发效率的重要原因之一. ②继承是具有传递性的,就像现实中孙子不仅长得像爸爸而且还像他爷爷. ③ ...