2011-09-23 66 views
1

我使用Eclipse与PDT。大多数优化解决方案都提到增加XmsXmx值以使Eclipse能够处理更多的Java对象。我很好奇XXMaxPermSize。增加它的值会增加java进程使用的内存。针对Eclipse PDT或PyDev进行优化时更有用 - launcher.XXMaxPermSize或Xms,Xmx?

对于非Java IDE的使用,这三个(或三个),则应该增加?我的eclipse.ini文件内容如下:

-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505 
-showsplash 
org.eclipse.platform 
--launcher.XXMaxPermSize 
256m 
--launcher.defaultAction 
openFile 
-vmargs 
-Xms512m 
-Xmx1024m 
-XX:+UseParallelGC 

更新:以下是更新的eclipse.ini我使用。

-startup 
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar 
--launcher.library 
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505 
-showsplash 
org.eclipse.platform 
--launcher.XXMaxPermSize 
256m 
-vm 
/usr/lib/jvm/java-6-openjdk/jre/bin/java 
--launcher.defaultAction 
openFile 
-vmargs 
-Dosgi.requiredJavaVersion=1.6 
-Xms512m 
-Xmx1024m 
-XX:MaxPermSize=256m 
-XX:+UnlockExperimentalVMOptions 
-XX:+UseG1GC 
+0

参见:http://stackoverflow.com/questions/142357/what-are-the-best- JVM的设置换食 –

回答

0

对于PDT或其他非Java开发而言,只要Eclipse本身运行良好(可能与此无关),这些变量的大小应该在很大程度上不相关。

ini documentation page

--launcher.XXMaxPermSize如果指定,并且所述可执行检测到正在使用的VM是Sun VM,则 发射将自动添加-XX(可执行): MaxPermSize = vm 参数。该可执行文件无法在所有 平台上检测到Sun虚拟机。

blog post也是有帮助的,特别提到了X毫秒XMX从PermGen的空间分离,语法要求,即ARGS必须在单独的行(因为你有以上),并且:

最好办法知道,如果你的命令行参数实际上已经 在正确传递是去帮助/关于[产品名称],然后点击 “配置详细信息”,并检查属性“eclipse.vmargs” 包含你所期望的值。

最后,this page提到了哪些错误可以被看作如果设置过低:

1) Java.lang.OutOfMemoryError: Java heap space (The Xmx variable) 
2) Java.lang.OutOfMemoryError: PermGen space (The XXMaxPermSize variable)