Running Eclipse/Workshop on JRockit!
Marcus Hirt's Blog |
February 19, 2008 9:25 AM
|
Comments (3)
Within the next few days, Mission Control will be available for download directly into your IDE from an update site. To fully take advantage of this, however, you need to run Eclipse on a JRockit. This blog is an update to an old blog of mine, which explains how and has a few very specific tips for the insanely rich or the ones working for BEA. ;) Despite JRockit being an outspoken server side JVM, many long running client applications, like IDE's, actually run very well on JRockit. Running Eclipse on JRockit is no exception. The easiest way to change the JVM on which to start Eclipse is by modifying the eclipse.ini file. You can also set the -vm on the command line used to start Eclipse. In windows you'd typically do that in the shortcut you use to launch Eclipse. Just using JRockit out of the box yields pretty good performance. Here is an example ini file: -showsplash org.eclipse.platform -vm D:\jrockits\R27.5.0_R27.5.0-111_1.5.0\bin\javaw.exe You can usually get better performance by setting the initial heap size and the max heapsize to the same, thus bypassing the dynamic growing/shrinking of the heap: -showsplash org.eclipse.platform -vm D:\jrockits\R27.5.0_R27.5.0-110_1.5.0\bin\javaw.exe -vmargs -Xms384m -Xmx384m The insanely rich (or BEA employees) can run Eclipse on WLRT/deterministic GC (some would call this overkill) for a very smooth experience. This is the eclipse.ini I use myself: -showsplash org.eclipse.platform -vm D:\jrockits\R27.5.0_R27.5.0-110_1.5.0\bin\javaw.exe -vmargs -Xms384m -Xmx384m -XgcPrio:deterministic -XpauseTarget:20 -XXcompactratio:1 One common pitfall is trying to use Sun specific flags, which would cause the JRockit launcher to exit right away, like for example -Xincgc or -Xbatch. For more information:
Comments
Comments are listed in date ascending order (oldest first) | Post Comment
-
Working for BEA doesn't preclude you from being insane.
Any particular reason why the pause target is so low? I'd have thought 100ms would give a reasonable interactive response, and be more efficient?
Posted by: paston on February 19, 2008 at 10:42 AM
-
Because we can :-)
For reasonably small apps on modern hardware, the Deterministic GC can give you worst-case pause times in the low single-digit millisecond range. And there isn't really a big efficiency hit - the typical performance degradation compared to JRockit fully tuned for throughput is not more than maybe 10-15%, not even noticeable in most cases.
Posted by: hstahl on February 19, 2008 at 11:22 AM
-
On my hardware I find 20ms gives me nifty response times with no adverse effects (i.e. no excessive heap fragmentation). To be honest I haven't done much profiling to find out if I can go even lower. I suspect I can - the relatively weak hardware of my laptop should be offset by the smaller heapsizes involved.
If you want to really fine tune your JRockit/Eclipse combo, I'd recommend doing a JRA recording once every half hour or so for a few hours to determine the optimum settings.
Posted by: hirt on February 19, 2008 at 3:56 PM
|