您为运行Eclipse找到的最佳JVM设置是什么?
当前回答
您也可以尝试使用JRockit运行。它是针对服务器优化的JVM,但许多长时间运行的客户端应用程序(如IDE)在JRockit上运行得非常好。Eclipse也不例外。JRockit没有烫发空间,所以您不需要配置它。
可以设置一个暂停时间目标(ms)来避免长时间的gc暂停使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任务控制工具套件监视、分析和查找应用程序中的内存泄漏。您可以从这个更新站点下载插件。注意,仅适用于Eclipse 3.3和Eclipse 3.4
其他回答
下面是我自己在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
计算: 适用于win7 x64
Xms =物理内存/ 16 Xmx =物理内存/ 4 MaxPermSize =保持默认值256m
-showlocation
为了让eclipse更容易运行两次,并知道您正在处理哪个工作区
Eclipse 3.6添加了一个首选项选项来指定要显示的工作区名称(显示在窗口标题中),这比-showlocation好用得多,原因有三:
不需要重新启动eclipse即可使其生效。 你可以选择一个短代码。 它出现在透视图和应用程序名称之前。
-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
以下是我使用的方法(尽管我在快捷方式而不是设置文件中使用了它们):
eclipse.exe -showlocation -vm "C:\Java\jdk1.6.0_07\bin\javaw.exe" -vmargs -Xms256M -Xmx768M -XX:+UseParallelGC -XX:MaxPermSize=128M
Eclipse Ganymede 3.4.2设置
有关最新的设置,请参阅上面的Eclipse Galileo 3.5设置。
JDK
在我看来,最好的JVM设置总是包括你能找到的最新JDK(所以目前为止,jdk1.6.0_b07到b16,除了b14和b15)
eclipse.ini
即使有这么低的内存设置,我也可以用2Go RAM在我2002年的旧台式机上运行大型java项目(以及web服务器)。
-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
正如之前关于内存消耗的问题所述。
推荐文章
- 哪些Eclipse文件属于版本控制?
- Java编译器和JVM是用哪种语言编写的?
- 如何在Eclipse Classic中安装Eclipse市场?
- 为什么logcat没有显示任何东西在我的Android?
- Eclipse中的Java项目:无法解析Java .lang. object类型。它是从必需的.class文件中间接引用的
- 开发Android应用最好的IDE是什么?
- 如何激活JMX在我的JVM访问jconsole?
- 在Eclipse中查找TODO标记
- 从现有源代码创建新项目时,Eclipse“无效项目描述”
- 抛出异常时中断
- Eclipse字体和背景颜色
- 如何解决“java.net.BindException: Address already in use: JVM_Bind”错误?
- Eclipse复制/粘贴整行键盘快捷方式
- 如何附加javadoc或源jar在libs文件夹?
- 将现有Eclipse项目转换为Maven项目