BEA's latest JVM release, JRockit R27.2, is the first implementation of the Java 6 virtual machine outside Sun. In addition to providing full Java 6 support, the latest JRockit VM includes many-fold performance improvements, especially for applications with many short-lived objects.
BEA released this week its latest Java Virtual Machine implementation, JRockit R27.2. The latest release features Java 6 support, as well as monitoring and diagnostic tools, including BEA's popular VM Mission Control utility.
In a blog post accompanying the release, BEA JRockit product manager Henrik Stahl noted:
A ~10% improvement across the board from the previous JRockit release (R27.1), and much more in some cases.
Out of the box performance in particular has received a huge boost - almost 70% on the SPECjbb2005 benchmark.
SPECjbb2005 is the latest version of the SPECjbb Java server performance benchmark.
Some of JRockit's performance improvements come from how the new JRockit VM's implementation of generational garbage collection handles short-lived objects. Generational garbage collection, introduced in the 1.3-level Java virtual machines, separates objects based on how long an object has been in the VM's heap space. Objects surviving garbage collection cycles are promoted to increasingly older generations. Generations allow the VM to optimize garbage collection because the garbage collector can nominate an entire generation for possible garbage collection. The youngest generation of objects belong to the "nursery:"
The R27.2 release includes a new nursery implementation, which yields better application throughput and shorter nursery garbage collection pause times... Nursery sizing heuristics have been improved for the default garbage collection algorithm... leading to better application throughput.
These enhancements will improve performance by an average of 10% over a broad range of applications, with the largest benefits expected for memory intensive applications and out-of-the-box configurations.
In a benchmark test involving short-lived objects, such as short-lived session objects, the latest-generation JRockit performed almost three times as fast as the prior JRockit version, according BEA's benchmark documents.
Other new JRockit features include support for Windows Vista, and RedHat Enterprise Linux 5.0.
What JVMs do you prefer for deploying your enterprise applications on? In general, how much difference have you seen in application performance based on what JVM your application runs on?