了解Eclipse的内存参数

时间:2012-10-12 18:07:13

标签: eclipse jvm

我刚刚在Linux 64位上安装了Eclipse 4.2(Juno)。我在Stack Overflow上查看了几个Eclipse.ini个线程,但我仍然不理解不同内存参数之间的关系。

一方面,有VM的参数和-vmargs下的参数(例如,-Xms-Xmx-XX) ,而其他人(例如,--launcher.XXMaxPermSize)直接提供给Eclipse。

这些参数之间有什么关系?如何为超过8 GB内存的计算机设置它们?

我知道很长的Stack Overflow问题 What are the best JVM settings for Eclipse? ,但我想学习如何自己调整这些参数。

作为参考,安装后,Juno的默认参数是:

-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

2 个答案:

答案 0 :(得分:17)

如果您在Oracle / Sun JVM上运行Eclipse,我会忽略--launcher.XXMaxPermSize(我个人将其删除)并专注于-XX:MaxPermSize-Xms-Xmx

--launcher.XXMaxPermSize的原因是某些非Oracle / Sun JVM会在-XX:MaxPermSize上窒息。启动程序被编程为检测JVM并有条件地提供-XX:MaxPermSize。这当然被默认 eclipse.ini 文件中的显式-XX:MaxPermSize设置所击败。这看起来像个错误。

我从不弄乱-Xms设置。我设置了-Xmx1024m-XX:MaxPermSize=512m

答案 1 :(得分:0)

为了完整起见,应该注意,永久代(PermGen)在Java 8 HotSpot中已被MetaSpace取代。

因此,如果您使用Java 8或更高版本的Oracle JVM,则不必担心这些参数,可以安全地从eclipse.ini中删除这些参数:

--launcher.XXMaxPermSize
-XX:MaxPermSize

从那时起,JVM将忽略-XX:MaxPermSize参数并生成警告(请参阅:PermGen elimination in JDK 8)。