我将Eclipse与PDT结合使用。大多数优化解决方案都提到增加Xms
和Xmx
值以使Eclipse能够处理更多Java对象。我对XXMaxPermSize
感到好奇。增加它的值会增加java进程使用的内存。
对于非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 :(得分:0)
对于PDT或其他非Java开发,只要Eclipse本身运行正常(可能与此无关),这些变量的大小应该在很大程度上无关紧要。
- launcher.XXMaxPermSize(Executable)如果已指定,并且可执行文件检测到正在使用的VM是Sun VM,则 启动器将自动添加-XX:MaxPermSize = vm 论点。可执行文件无法检测所有Sun VM 平台。
这个blog post也很有帮助,特别提到Xms 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)