What are the best JVM settings you have found for running Eclipse?
What are the best JVM settings you have found for running Eclipse?
For more recent settings, see Eclipse Galileo 3.5 settings above.
The best JVM setting always, in my opinion, includes the latest JDK you can find (so for now, jdk1.6.0_b07 up to b16, except b14 and b15)
Even with those pretty low memory settings, I can run large java projects (along with a web server) on my old (2002) desktop with 2Go 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
See GKelly's SO answer and Piotr Gabryanczyk's blog entry for more details about the new options.
You can also consider launching:
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
As said in a previous question about memory consumption.
-showlocation
To make it easier to have eclipse running twice, and know which workspace you're dealing with
Eclipse 3.6 adds a preferences option to specify what to show for the Workspace name (shown in window title) which works much better than -showlocation for three reasons:
If you are using Linux + Sun JDK/JRE 32bits, change the "-vm" to:
-vm
[your_jdk_folder]/jre/lib/i386/client/libjvm.so
If you are using Linux + Sun JDK/JRE 64bits, change the "-vm" to:
-vm
[your_jdk_folder]/jre/lib/amd64/server/libjvm.so
That's working fine for me on Ubuntu 8.10 and 9.04
If you're going with jdk6 update 14, I'd suggest using using the G1 garbage collector which seems to help performance.
To do so, remove these settings:
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
and replace them with these:
-XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
-vm
C:\Program Files\Java\jdk1.6.0_07\jre\bin\client\jvm.dll
To specify which java version you are using, and use the dll instead of launching a javaw process
Here's what I use (though I have them in the shortcut instead of the settings file):
eclipse.exe -showlocation -vm "C:\Java\jdk1.6.0_07\bin\javaw.exe" -vmargs -Xms256M -Xmx768M -XX:+UseParallelGC -XX:MaxPermSize=128M