你的位置:首页 > Java教程

[Java教程]MyEclipse内存不足问题


1、修改eclipse.ini 

在Myeclipse安装目录下G:\MyEclipse8.5\Genuitec\MyEclipse 8.5有一个myeclipse.ini配置文件,设置如下: 

-vmargs 
-Xmx512m 
-XX:MaxPermSize=256m 
-XX:ReservedCodeCacheSize=64m 

2、设置Default VM Arguments 

在myEclipse中,打开Windows-> Preferences->Java->Installed JREs->点击正在使用的JDK->Edit->Default VM Arguments文本框中输入:-Xms64m   -Xmx256m 

3、如果是web工程还报内存溢出,可能就要设置tomcat内存。 

(1)tomcat的安装根目录%tomcat%bin/catalina.bat文件,SET JAVA_OPTS 一行; 
set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m 
里面的值可以根据项目的具体情况和机器的具体情况作调整 

(2)myeclipse配置web服务器配置 Window—Preferences—Myeclipse—Servers—tomcat 5.x—JDK的Optional Java VM arguments配置为: 

-Xms256m -Xmx512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m 

4、如果是debug模式运行,需要调整debug的虚拟机参数,因为debug模式的默认内存分配时很少的。 

5,如果是eclipse跑junit测试遇到内存问题 
进行运行全部的测试用例的时候发现不能运行完了,到了后面的一些测试用例的时候出现OutOfMemoryError,是junit导致的,因为teardown并没有清理掉使用过的内存,只能修改Run的时候的参数,把内存加大。 
Eclipse启动JUnit的时候设置的值大概是64M左右,而我加大内存后监控内存使用的结果表明全部的测试用例需要使用100M内存。 
方法为:Run->Run…->JUnit->AllTests->(x)=Arguments->VM Arguments: -Xmx500m 
注意上面的AllTests为自己要修改的那个包含全部测试用例的Test suite的类。 

-Xmn是年轻代,一般不要超过堆大小(-Xms和-Xmx)的一半