java OutOfMemory错误

当运行程序出现OutOfMemory错误时,需要修改myeclipse目录下的eclipse.ini文件,修改内容如下所示:

-showsplash

com.genuitec.myeclipse.product

-launcher.XXMaxPermSize

256m

-vmargs

-Xms128m

-Xmx512m

-Duser.language=en

-XX:PermSize=128M

-XX:MaxPermSize=256M

主要修改的参数一般是-Xmx512m,它表示所能使用的最大内存为512MB。

下面给一些这些参数的解释:

JVM提供了各种用于调整内存分配和垃圾回收行为的标准开关和非标准开关。其中一些设置可以提高JAVA IDE的性能。

以下设置在大多数系统上将产生比工厂更好的设置性能。

-vmargs:表示将后面的所有参数直接传递到所指示的java VM。

-Xverify:none:此开关关闭Java字节码验证,从而加快了类装入的速度,并使得在仅为验证目的而启动的过程中无需装

入类。此开关缩短了启动时间,因此没有理由不使用它。

-Xms24m:此设置指示Java虚拟机将其初始堆大小设置为24MB。通过指示JVM最初应分配给堆得内存数量,可以使JVM

不必在IDE占用较多内存时增加堆大小。

-Xmx96m:此设置指定Java虚拟机应对堆使用的最大内存数量。为此数量设置上限表示Java进程消耗的内存数量不得超过

可用的物理内存数量。对于具有更多内存的系统可以增加此限制,96MB设置有助于确保IDE在内存量为128MB到256MB的

系统上能够可靠地执行操作。注意:不要将该值设置为接近或大于系统的物理内存量,否则将在主要回收过程中导致频繁的

交换操作。

-XX:PermSize=20m:此JVM开关不仅功能更为强大,而且能够缩短启动时间。该设置用于调整内存“永久区域”(类保存在

该区域中)的大小。因此我们像JVM提示它将需要的内存量。该设置消除了许多系统启动过程中的主要垃圾收集事件。SunONE

Studio或其它包含更多模块的IDE的用户可能希望将该数值设置得更高。

下面列出了其它一些可能对 ECLIPSE 在某些系统(不是所有系统)上的性能产生轻微或明显影响的 JVM 开关。尽管使用它们会

产生一定的影响,但仍值得一试。

-XX:CompileThreshold=100 - 此开关将降低启动速度,原因是与不使用此开关相比,HotSpot 能够更快地将更多的方法编译为本地

代码。其结果是提高了 IDE 运行时的性能,这是因为更多的 UI 代码将被编译而不是被解释。该值表示方法在被编译前必须被调用的

次数。

-XX:+UseConcMarkSweepGC -XX:+UseParNewGC - 如果垃圾回收频繁中断,则请尝试使用这些开关。此开关导致 JVM 对主要垃圾

回收事件(如果在多处理器工作站上运行,则也适用于次要回收事件)使用不同的算法,这些算法不会影响整个垃圾回收进程。

注意:目前尚不确定此收集器是提高还是降低单处理器计算机的性能。

-XX:+UseParallelGC - 某些测试表明,至少在内存配置相当良好的单处理器系统中,使用此回收算法可以将次要垃圾回收的持续时间减

半。注意,这是一个矛盾的问题,事实上此回收器主要适用于具有千兆字节堆的多处理器。尚无可用数据表明它对主要垃圾回收的影响。

注意:此回收器与 -XX:+UseConcMarkSweepGC 是互斥的。

假设机器是512MB的内存,可以用这样的eclipse启动参数:eclipse.exe -vmargs -Xverify:none -Xms64M -Xmx256M

-XX:PermSize=20M -XX:+UseParallelGC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值