浏览 4544 次
锁定老帖子 主题:JVM 设置
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-07-06  

最近在公司老是碰到out of memory error, 一天重启eclipse好多次,被郁闷得要死。

如果启动了jetty的话,不一会就会有permgen space out of memory异常。

产生的原因我猜测是使用了maven,subversion,mylar,wtp等插件,具体原因还不确定。

在网上找了找相关资料,暂时找到一些解决方法,但并没有完全解决问题:

(1)在eclipse根目录,找到eclipse.ini,在其中指定初始heap size和最大heap size:

-xms 64M

-xmx 256M

其中, -xms是初始heap size, -xmx 是最大heap size。

在实际使用过程中,我发现我一启动eclipse时,heap size使用大概是40m,多时可以达到128m,所以我的设置是

-xms 64m

-xmx 128m

(2)对于permgen space:

在eclipse.ini中指定参数:

-permsize 256m

-maxpermsize 784m

因为我用的是jetty,设置之后感觉出现permgen space的间隔长了不少,但是还是会出现。具体的值设置为多大,我现在还没有弄清楚,在tomcat中好像有别的地方可以设置。

(3)有一个办法可以在eclipse中看到当前heap size的分配和使用情况,还可以强制执行垃圾回收。

在eclipse的快捷方式上点击右键,在目标栏添加参数:

-debug options -vm javaw.exe

然后,在eclipse根目录下,新建一个名为options的文件,不要后缀名。在该文件中加入内容:

org.eclipse.ui/perf/showHeapStatus=true

重启eclipse,就可以在eclipse的左下角看到当前heap size的使用情况和分配情况了,还可以手工执行垃圾回收,看heap size不够时就来一次。

 

参考文章:http://www.yuanma.org/data/2006/0925/article_1590.htm

论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics