zhouxihua0 2011-10-26
今天Eclipse更新完后重新启动的时候Eclipse出现了问题当时觉得挺莫名其妙的。
点击控制台启动显示的错误信息为“ErroroccurredduringinitializationofVMCouldnotreserveenoughspaceforobjectheap”。
原因是:
在Eclipse启动时为Java虚拟机(JVM)分配的内存大于系统可用内存数,所以没有足够的空间分配给JVM来创建Object。
JVM中如果98%的时间是用于GC且可用的,Heapsize不足2%的时候将抛出此异常信息。JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置.
解决方法:
修改eclipse目录下的eclipse.ini里面的几个参数:-Xms-Xmx,给他们赋予适当的值。
规则如下JVM在启动的时候会自动设置Heapsize的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn-Xms-Xmx等选项可进行设置。HeapSize最大不要超过可用物理内存的80%,一般的要将-Xms和-Xmx选项设置为相同,而-Xmn为1/4的-Xmx值。
例子(我的Eclipse.ini)
-showsplash
org.eclipse.platform
–launcher.XXMaxPermSize
256M
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx256m