我刚安装Eclipse 4.2(麦浚龙)在Linux 64位。我看过对堆栈溢出几个Eclipse.ini
线程,但我还是不明白,不同的内存参数之间的关系。
一方面,有参数都为VM下-vmargs
是去(例如,-Xms
和-Xmx
,-XX
),而其他人(例如,--launcher.XXMaxPermSize
)提供直接蚀。
什么是这些参数之间的关系?我将如何设置它们的机器超过8 GB的内存?
我知道长的堆栈溢出问题What are the best JVM settings for Eclipse?的,但我想了解如何调整这些参数的自己。
作为参考,在安装后,该朱诺具有默认参数是:
-startup
plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.200.v20120522-1813
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Dhelp.lucene.tokenizer=standard
-XX:MaxPermSize=256m
-Xms40m
-Xmx512m
如果您是在甲骨文/ Sun JVM上运行Eclipse,我会不顾--launcher.XXMaxPermSize
(我个人将其删除),并专注于-XX:MaxPermSize
,-Xms
和-Xmx
。
原因--launcher.XXMaxPermSize
是,一些非甲骨文/ Sun的JVM会呛-XX:MaxPermSize
。该发射器进行编程,以检测JVM和有条件地提供-XX:MaxPermSize
。当然,这是在默认eclipse.ini文件明确-XX:MaxPermSize
设置击败。这看起来像一个bug。
我从来没有惹-Xms
设置。我设置-Xmx1024m
和-XX:MaxPermSize=512m
。
为了完整起见,应该指出的是,永久代(PermGen的)在Java的8热点与元空间所取代。
所以,如果你使用的是Oracle JVM与Java 8或更高版本,你不必担心这些参数了,并且可以安全地删除那些从你的eclipse.ini:
--launcher.XXMaxPermSize
-XX:MaxPermSize
自那时以来,-XX:MaxPermSize
参数由JVM忽略,并产生一个警告(见:PermGen elimination in JDK 8)。