什么是适用于Eclipse的最佳JVM设置?

315

您找到的运行Eclipse的最佳JVM设置是什么?


8
这里提供了Helios 3.6版Eclipse的新版本并改进了eclipse.ini的配置(请参考下面的新答案):https://dev59.com/1XVC5IYBdhLWcg3w7V33#3275659 - VonC
6
闭上“不具建设性”的问题居然评分这么高,真是令人惊讶。 - bancer
1
这个问题是在最近一次类似问题的回答(2008年http://www.eclipsezone.com/eclipse/forums/t20732.html)之后提出的。由于发布了新版本的 Eclipse 和 Java,随后的更新使答案保持新鲜。关闭此问题将导致答案变得陈旧。我能想到的唯一改写此问题的方法是使其与版本相关,但我认为这更糟糕,因为它会导致回答基本相同的多个问题。 - Craig Angus
10
同意 - 闭幕式问题像这样的是疯狂的 - 我告诉你,这是疯狂的 - 这样的问题是网站上最有用和最有趣的! - Luigi Plinge
3
根据关闭原因,“我们希望答案通常涉及事实、参考资料或专业知识”。我认为关闭这个问题有点牵强。让我们小心地使用审查权力。我认为如果怀疑不确定,最好还是“让知识自由”并保持开放状态。 - luiscolorado
16个回答

314
又到了一年一度的时候了:“eclipse.ini第三版”设置卷土重来!
Eclipse Helios 3.6和3.6.x的设置
在设置了Eclipse Ganymede 3.4.x和Eclipse Galileo 3.5.x之后,现在我们来深入了解一下针对Eclipse Helios 3.6.x的“优化”eclipse.ini设置文件:

通过“优化”,我指的是能够在我们工作的糟糕工作站上运行完整的Eclipse,这是一台2002年的旧P4机器,配备2GB内存和XPSp3。但我也在Windows7上测试了相同的设置

Eclipse.ini

alt text

警告:对于非Windows平台,请使用Sun专有选项-XX:MaxPermSize,而不是Eclipse专有选项--launcher.XXMaxPermSize
也就是说:除非您正在使用最新的jdk6u21 build 7。 请参阅下面的Oracle部分。

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.defaultAction
openFile
-vm
C:/Prog/Java/jdk1.6.0_21/jre/bin/server/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.6
-Declipse.p2.unsignedPolicy=allow
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+CMSIncrementalPacing
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/Prog/Java/eclipse_addons

注意: 将 p2.reconciler.dropins.directory 调整为您选择的外部目录。 参见此 SO answer。 这个想法是能够在一个目录中独立于任何 Eclipse 安装中添加新的插件。
以下部分详细说明了这个 eclipse.ini 文件中的内容。

可怕的Oracle JVM 1.6u21(预构建7)和Eclipse崩溃

Andrew Niefer提醒了我这个情况,并写了一篇博客文章,关于一个非标准的虚拟机参数(-XX:MaxPermSize),可能会导致其他供应商的虚拟机根本无法启动。
但是Eclipse版本的该选项(--launcher.XXMaxPermSize)在新的JDK(6u21,除非您使用的是6u21构建7,见下文)中无效。

最终的解决方案在Eclipse Wiki上,仅适用于Helios在Windows上使用6u21预构建7

(eclipse_home)/plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.1.0.v20100503
就是这样。这里没有需要调整的设置(再次强调,仅适用于在Windows上的Helios版本,使用6u21预构建7版本)。对于非Windows平台,您需要恢复到Sun专有选项-XX:MaxPermSize
问题基于一个回归:JVM identification fails due to Oracle rebranding in java.exe,并在Eclipse上触发了bug 319514
安德鲁负责 Bug 320005 - [launcher] --launcher.XXMaxPermSize: isSunVM should return true for Oracle,但这只适用于Helios 3.6.1。
Francis Upton,另一位Eclipse贡献者,对整个情况进行了反思。

更新u21b7,7月27日
Oracle已经回滚了下一个Java 6版本的更改,并表示在JDK 7之前不会再次实施
如果您使用jdk6u21 build 7,您可以将--launcher.XXMaxPermSize(eclipse选项)恢复为-XX:MaxPermSize(非标准选项)。
在C启动器shim eclipse.exe中自动检测仍然会查找“Sun Microsystems”字符串,但是在6u21b7中,它现在可以正常工作。

目前,我仍然保留-XX:MaxPermSize版本(因为我不知道什么时候每个人都会使用正确的JDK启动eclipse)。


隐式的`-startup`和`--launcher.library`

与之前的设置相反,这些模块的确切路径不再设置,这是方便的,因为在不同的Eclipse 3.6.x版本之间可能会有所变化:

  • startup:如果未指定,可执行文件将在插件目录中查找具有最高版本的org.eclipse.equinox.launcher捆绑包。
  • launcher.library:如果未指定,可执行文件将在插件目录中查找具有最高版本的适当的org.eclipse.equinox.launcher.[platform]片段,并使用名为eclipse_*的共享库。

使用JDK6

现在启动Eclipse需要明确使用JDK6:

-Dosgi.requiredJavaVersion = 1.6

这个SO问题报告了在Mac OS上进行开发的积极情况。

+UnlockExperimentalVMOptions

以下选项是Sun JVM的一些实验选项的一部分。

-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-XX:+UseFastAccessorMethods

据这篇博客文章报道,它们可能会加快Eclipse的速度。
在这里查看所有的JVM选项,还有官方的Java Hotspot选项页面
注意:这些选项的详细列表报告称,默认情况下可能会激活UseFastAccessorMethods
参见"更新您的JVM"
提醒一下,G1是为JDK 7准备的新垃圾收集器,但已经在版本6的u17发布中使用。

从命令行在Eclipse中打开文件

请参阅Andrew Niefer的博客文章,报告了这个新选项:

--launcher.defaultAction
openFile

这告诉启动器,如果它被调用的命令行只包含不以“-”开头的参数,那么这些参数应被视为跟在“--launcher.openFile”之后。
eclipse myFile.txt

这是在Windows上双击与Eclipse关联的文件,或者选择文件并选择“打开方式”或“发送到”Eclipse时,启动器将接收到的命令行类型。
首先,相对路径将首先解析为当前工作目录,然后解析为Eclipse程序目录。
参考bug 301033。最初是bug 4922(2001年10月,9年后修复)。

如果你对安装多个插件时出现的这个对话框感到厌烦:

alt text

在你的eclipse.ini文件中添加以下内容:

-Declipse.p2.unsignedPolicy=allow

看看这个博客文章,来自Chris Aniszczy,还有错误报告 235526

我想说的是,安全研究支持较少的提示更好。
人们会忽视在他们想要完成的事情中突然弹出的东西。

对于3.6版本,我们不应该在流程中弹出警告 - 无论我们简化多少,人们都会忽视它们。
相反,我们应该收集所有的问题,不安装那些有问题的捆绑包,而是将用户带回到一个可以修复问题的工作流程中 - 增加信任,更宽松地配置安全策略等。这被称为'安全暂存'

---------- http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif alt text http://www.eclipse.org/home/categories/images/wiki.gif

其他选项

这些选项不直接在上面的eclipse.ini中,但在需要时可能会派上用场。


在Windows7上的`user.home`问题

当eclipse启动时,它会读取其密钥库文件(存放密码的文件),该文件位于user.home
如果由于某种原因,user.home无法正确解析为完整的路径,Eclipse将无法启动。
最初在这个SO问题中提出,如果您遇到此问题,您需要将密钥库文件重新定义为明确的路径(不再使用user.home在启动时解析)

在您的eclipse.ini中添加:

-eclipse.keyring 
C:\eclipse\keyring.txt

这个问题已经被bug 300577跟踪,已经在这个其他SO问题中解决。

调试模式

等一下,Eclipse 中有不止一个设置文件。
如果你在 eclipse.ini 中添加以下选项:

-debug

你可以启用调试模式,Eclipse将会寻找另一个设置文件:.options文件,你可以在其中指定一些OSGI选项。
当你通过dropins文件夹添加新的插件时,这非常有用。
在你的.options文件中添加以下设置,如此博客文章 "Dropins诊断"所描述:

org.eclipse.equinox.p2.core/debug=true
org.eclipse.equinox.p2.core/reconciler=true

P2会告诉你在“dropins/”文件夹中找到了哪些捆绑包,生成了什么请求,并且安装计划是什么。也许这并不是对实际发生的事情和出错原因的详细解释,但它应该给你提供了很强的信息,告诉你从哪里开始:
- 你的捆绑包是否在计划中? - 是安装问题(P2的问题) - 还是可能不适合包含你的功能?
这来自于Bug 264924 - [reconciler] No diagnosis of dropins problems,最终解决了以下问题:
Unzip eclipse-SDK-3.5M5-win32.zip to ..../eclipse
Unzip mdt-ocl-SDK-1.3.0M5.zip to ..../eclipse/dropins/mdt-ocl-SDK-1.3.0M5

这是一个有问题的配置,因为OCL依赖于缺失的EMF。
3.5M5没有对这个问题进行诊断。
启动eclipse。
没有明显的问题。错误日志中没有任何内容。 Help / About / Plugin详细信息显示org.eclipse.ocl.doc,但没有org.eclipse.oclHelp / About / Configuration详细信息中没有提到org.eclipse.ocl(诊断)。 Help / Installation / Information Installed Software中没有提到org.eclipse.ocl
漂亮的错误标记在哪里?

清单类路径

请参阅这篇博客文章

  • 在Galileo(也称为Eclipse 3.5)中,JDT开始解析添加到项目构建路径中的库的清单类路径。无论是直接将库添加到项目的构建路径,还是通过类路径容器(例如JDT提供的用户库设施或第三方实现的库)添加,都可以正常工作。
  • 在Helios中,这种行为已更改,不再解析类路径容器中的清单类路径。

这意味着您的一些项目可能无法在Helios中编译。
如果您想恢复到Galileo的行为,请添加:

-DresolveReferencedLibrariesForContainers=true

参考bug 305037bug 313965bug 313890

IPV4堆栈

这个SO问题提到了一个潜在的修复方法,当无法访问插件更新站点时:

-Djava.net.preferIPv4Stack=true

提到这里只是为了帮助您进行配置。

JVM1.7x64 潜在优化

这篇文章报道:

据我目前的测试结果显示,对于在 Windows 上使用 1.7 x64 JVM,最快的选项是:

-Xincgc 
-XX:-DontCompileHugeMethods 
-XX:MaxInlineSize=1024  
-XX:FreqInlineSize=1024 

但是我还在努力中...

1
嘿,G1GC 在 Mac 上是一场灾难。它会占用整个机器的资源,需要重新启动才能解决。 - bmargulies
2.8GHz的双核处理器,8GB内存,10.6.5操作系统。如果不使用G1GC选项,运行良好,但启用后会占用整个机器并导致死机。工作区中有许多项目,使用m2eclipse进行管理。设置了-Xmx1g参数。 - bmargulies
4
@VonC: 对我来说,-XX:CompileThreshold=5 导致了可怕的减速。仅仅去掉这个选项就让我的 Eclipse 启动时间从超过1分钟缩短到了17秒!!更不用说整个 IDE 的运行速度有多慢了。详情请参见此链接 - TrinitronX
3
@TrinitronX(以及所有人),-XX:CompileThreshold=5是一个非常低的值(默认值为10000)。这个值代表编译方法调用/分支之前的次数。如果值太低,将会导致你的CodeCache过早地填满并且控制台可能会报告:CodeCache is full. Compiler has been disabled一旦编译器被禁用,你会发现应用程序变得缓慢。 有两种解决方法,1.使用-XX:CompileThreshold=1000(微调此数字)或2.尝试使用-XX:ReservedCodeCacheSize=64m(从默认值32m加倍)来增加代码缓存大小。 - Drupad Panchal
4
对于 Linux 用户,请使用 /usr/lib/jvm/java-6-sun-1.6.0.26/jre/lib/i386/client/libjvm.so 作为 JVM(Java虚拟机)的位置。 - r15habh
显示剩余13条评论

76

Eclipse Galileo 3.5和3.5.1设置

目前(2009年11月),我正在使用 jdk6 update 17 测试以下配置选项(使用 Galileo - eclipse 3.5.x,请参考此处获取 3.4 版本,或此处获取 Helios 3.6.x 版本):
(当然,请根据您的设置将此 eclipse.ini 中的相对路径适应为正确的路径)

注意:对于eclipse3.5,请用下面这行替换 startuplauncher.library 行:

-startup
plugins/org.eclipse.equinox.launcher_1.0.200.v20090520.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519

eclipse.ini 3.5.1

-data
../../workspace
-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
../../../../program files/Java/jdk1.6.0_17/jre/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jv/eclipse/mydropins

请参考我的原始回答获取更多信息。

变更(自2009年7月起)

  • 引用的是启动器而不是框架
  • 共享插件:org.eclipse.equinox.p2.reconciler.dropins.directory选项。
  • Galileo支持完全相对路径的工作区或VM(如果JVM和工作区当然保持不变,则避免每次从一个eclipse安装修改到另一个eclipse安装中的那些路径)
    以前,当eclipse启动自身时,这些相对路径会被重写为绝对路径...
  • 您还可以将Java JDK安装的JRE目录复制到eclipse目录中

注意事项

忽略断点实际上与JDK有关。
使用JDK6u16或更高版本来启动eclipse(您可以随后在eclipse内部定义任意数量的JDK进行编译:启动带有JDK6的eclipse并不意味着您必须使用相同的JDK进行编译)。

Max

请注意使用:

--launcher.XXMaxPermSize
384m
-vmargs
-XX:MaxPermSize=128m
根据Eclipse Wiki文档,Eclipse 3.3支持一个新的启动参数--launcher.XXMaxPermSize。如果正在使用的虚拟机是Sun VM,并且没有已经存在的-XX:MaxPermSize=虚拟机参数,那么启动器将自动向正在使用的VM参数列表中添加-XX:MaxPermSize=256m。但是,仅有Windows版本的3.3启动器能够识别Sun VMs。根据这篇文章,并不是所有的vm都接受-XX:MaxPermSize参数,这就是为什么它以这种方式传递的原因。可能存在无法识别Sun VMs的问题。 Eclipse 3.3.1存在错误 bug,即启动器无法检测到Sun VM,因此不会使用正确的PermGen大小。似乎这也是Mac OS X 3.3.0版本已知的 bug。如果您使用其中任何一种平台组合,请按上述说明将-XX标志添加到eclipse.ini中。注意:"384m"行翻译为VM参数的"=384m"部分,如果VM对"m"区分大小写,则此参数也是如此。"--launcher."前缀指定该参数由启动器本身使用,并已添加到启动器特定参数中,以避免与应用程序参数发生名称冲突,其他示例包括--launcher.library--launcher.suppressErrors。"-vmargs -XX:MaxPermSize=384m"部分是直接传递给VM的参数,完全绕过了启动器并且不检查VM供应商。

@Igor Zinov'yev:有点冗余,但根据平台和Eclipse版本,两者都可能很有用。我将它们重置为相同的值,并在我的答案中加入了一些关于这些设置的文档说明。 - VonC
如果你总想使用最新和最棒的VM,那么为什么参数“-Dosgi.requiredJavaVersion=1.5”不使用1.6呢? - Tony R
@Tony:我把它留在这里是因为我的一些用户并不总是使用JRE6来运行eclipse。对于Helios(3.6),我将发布一个更新的答案,其中包括osgi.requiredJavaVersion的1.6版本。 - VonC
@VonC,Java 6更新21重新引入了permgen问题,因为JVM供应商从Sun更改为Oracle。http://aniefer.blogspot.com/2010/07/permgen-problems-and-running-eclipse-on.html - Andrew Niefer
@Andrew:已经注意到了。Eclipse Helios 的设置答案将在下个周末呈现。 - VonC
显示剩余3条评论

63

Eclipse Ganymede 3.4.2设置


如需更新的设置,请参见Eclipse Galileo 3.5的上述设置


JDK

在我看来,最佳JVM设置始终包括您可以找到的最新JDK(因此,现在为jdk1.6.0_b07至b16,除了b14和b15

eclipse.ini

即使使用这些相当低的内存设置,我仍然可以在我的旧式(2002年)桌面计算机上运行大型Java项目(以及Web服务器),其仅有2GB RAM。

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256M
-framework
plugins\org.eclipse.osgi_3.4.2.R34x_v20080826-1230.jar
-vm
jdk1.6.0_10\jre\bin\client\jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss2m
-XX:PermSize=128m
-XX:MaxPermSize=128m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-XX:CompileThreshold=5
-Dcom.sun.management.jmxremote

请看GKelly SO的答案Piotr Gabryanczyk的博客文章,了解更多有关新选项的详细信息。

监控

您也可以考虑启动:

C:\[jdk1.6.0_0x path]\bin\jconsole.exe

如同在有关内存消耗的先前问题中所述


1
当我在VM设置中包含-Xssv2m时,Eclipse无法启动。我查看了JVM设置的文档,但找不到它的用途是什么。 - Craig Angus
没错...那是个打字错误:Xss2m,而不是Xssv2m:-Xss决定了堆栈的大小:-Xss1024k。如果堆栈空间太小,最终你会看到一个异常类java.lang.StackOverflowError(这里传说中的错误信息;-)) - VonC
终于开始使用第二组设置,惊讶于它们的良好效果! - Craig Angus
@VonC:3.5M5旧版antVersion来自3.4,目前无法验证,因为没有经常使用eclipse进行开发。 - Craig Angus
@Craig:好的,我会在周末回家后用我的Eclipse3.5M5检查这些设置(我只在工作中使用3.4)。 - VonC
显示剩余3条评论

20

Eclipse Indigo 3.7.2 设置(64位Linux)

在 x86-64 Linux 上运行的 Eclipse 3.7Sun/Oracle java 版本 "1.6.0_31" 的设置:

-nosplash
-vmargs
-Xincgc
-Xss500k
-Dosgi.requiredJavaVersion=1.6
-Xms64m
-Xmx200m
-XX:NewSize=8m
-XX:PermSize=80m
-XX:MaxPermSize=150m
-XX:MaxPermHeapExpansion=10m
-XX:+UseConcMarkSweepGC
-XX:CMSInitiatingOccupancyFraction=70
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+UseParNewGC
-XX:+CMSConcurrentMTEnabled
-XX:ConcGCThreads=2
-XX:ParallelGCThreads=2
-XX:+CMSIncrementalPacing
-XX:CMSIncrementalDutyCycleMin=0
-XX:CMSIncrementalDutyCycle=5
-XX:GCTimeRatio=49
-XX:MaxGCPauseMillis=20
-XX:GCPauseIntervalMillis=1000
-XX:+UseCMSCompactAtFullCollection
-XX:+CMSClassUnloadingEnabled
-XX:+DoEscapeAnalysis
-XX:+UseCompressedOops
-XX:+AggressiveOpts
-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses

请注意,这仅使用200 MB的堆和150 MB的非堆。如果您正在使用大型插件,则可能需要增加“-Xmx200m”和“-XX:MaxPermSize = 150m”限制。

这些标志的主要优化目标是在所有情况下最小化延迟,并将内存使用最小化作为次要优化目标。


对我来说运行得很棒(虽然我将与内存相关的设置值加倍,但仍然很低且快速!) - Aktau
你同时使用了 -XX:+UseConcMarkSweepGC 和 -XX:+UseParNewGC。为什么?我认为你不能同时使用两个垃圾收集器,而且我也不确定最终使用的是哪一个。 - herman
参见:http://blogs.oracle.com/jonthecollector/entry/our_collectors - Mikko Rantalainen
3
每个选项和每个选项的参数必须独占一行。 - Josh Clemm
带有16GB RAM的SSD。设置“-Xmx4G”和“-XX:MaxPermSize = 3G”。运行起来像梦一样顺畅。 - Jeshurun
显示剩余2条评论

14

-showlocation


为了更容易地在两个Eclipse实例之间切换,并且知道正在使用哪个工作区,Eclipse 3.6增加了一个首选项选项,用于指定显示在窗口标题中的工作区名称,比使用 -showlocation 更好,原因如下:
  1. 不需要重启 Eclipse ,就可以生效。
  2. 可以选择一个简短的代码。
  3. 它会在透视图和应用程序名称之前出现。

9
如果您使用的是jdk6更新14,我建议使用G1垃圾收集器,它似乎有助于提高性能。
为此,请删除以下设置:
-XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing
并用以下内容替换它们:
-XX:+UnlockExperimentalVMOptions -XX:+UseG1GC

9
如果您使用的是Linux + Sun JDK/JRE 32位版本,请将“-vm”更改为:
-vm 
[your_jdk_folder]/jre/lib/i386/client/libjvm.so

如果您正在使用Linux + Sun JDK/JRE 64位版本,请将"-vm"更改为:
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so

对于我来说,在Ubuntu 8.10和9.04上都可以正常工作。


这是为了让Eclipse使用JDK作为默认环境吗? - Thorbjørn Ravn Andersen
这可以用于让Eclipse使用特定/不同的JDK作为默认环境。 - Gilberto Olimpio

7
你也可以尝试使用JRockit运行。它是为服务器优化的JVM,但许多长时间运行的客户端应用程序(如IDE)在JRockit上运行得非常好。Eclipse也不例外。JRockit没有永久代空间,因此您无需进行配置。
可以设置暂停时间目标(毫秒),以避免长时间的垃圾回收暂停UI。
-showsplash
org.eclipse.platform
-vm
 C:\jrmc-3.1.2-1.6.0\bin\javaw.exe 
-vmargs
-XgcPrio:deterministic
-XpauseTarget:20

我通常不会设置-Xmx和-Xms,而是让JRockit根据需要自动增加堆大小。如果您使用JRockit启动Eclipse应用程序,还可以使用JRockit Mission Control工具套件监视、分析和查找应用程序中的内存泄漏问题。您可以从此更新站点下载插件。请注意,此插件仅适用于Eclipse 3.3和Eclipse 3.4版本。


我以前在JRockit上运行过Eclipse,效果非常好。 - Craig Angus

5

这是我自己在搭载i7 2630M处理器,16GB内存的笔记本电脑上使用Eclipse时的设置。这个设置已经使用了一周时间,没有出现任何崩溃情况,同时Eclipse 3.7也运行得非常顺畅。

-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.jee.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms1024m
-Xmx4096m 
-XX:MaxPermSize=256m

计算方法:

  • Xms = 物理内存 / 16
  • Xmx = 物理内存 / 4
  • MaxPermSize = 与默认值相同,即 256m

哇,16G的笔记本电脑?我很好奇。那是System76吗?:D - Phil

5
-startup
../../../plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx_1.1.100.v20110502
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Xms128m
-Xmx512m
-XX:MaxPermSize=256m
-Xdock:icon=../Resources/Eclipse.icns
-XstartOnFirstThread
-Dorg.eclipse.swt.internal.carbon.smallFonts
-Dcom.sun.management.jmxremote
-Declipse.p2.unsignedPolicy=allow

对我来说,这些设置非常有效。我正在运行OS X10.6、Eclipse 3.7 Indigo、JDK1.6.0_24。


谢谢,这对我的性能有很大帮助(类似的设置)。但是我将最大堆大小增加到了1024MB。 - Jeff Evans

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接