Although some dismiss the advantages of a faster client Java virtual machine (JVM), a speedier JVM ultimately means that server-side Java handles more transaction traffic on the same hardware, and therefore costs less. A small speed gain won't make anybody's head turn, but when a product like Sun's Java Development Kit(JDK) 1.2.1 with Java HotSpot Performance Engine 1.0 promises to nearly double the performance of a JVM, it warrants attention.
We tested JDK 1.2.1 with HotSpot enhancement, which promises faster execution of the byte code, a less intrusive garbage-collection mechanism, and improved handling of multithreaded applications. A key HotSpot innovation is that it can detect the most resource-hungry segments of an application, then apply the just-in-time compiler to that code only.
In our tests, the HotSpot-enhanced Sun JDK 1.2.1 proved to perform significantly faster than without the new technology, although IBM's currently available JDK 1.1.7 provided a slightly better performance gain. And the next JDK from IBM, which we previewed for these tests, performed even better due to similar enhancements, although it doesn't offer selective optimisation of the code. Sun's HotSpot is also being revamped, but the 2.0 version is not yet ready.
We tested using the JVM98 1.03 benchmark from Standard Performance Evaluation Corp (SPEC). The geometrical mean of each SPEC rating defines the final performance rating. (See www.spec.org/osg/jvm98/results/jvm98.html.)Both new releases from Sun and IBM perform significantly better than their predecessors, which is good news for IT shops that support Java, because they can put those resource savings to work for server-side business-critical applications. Although our results show that the IBM JDK 1.1.8 is taking the performance lead, it's a close race. More significant is the gain that HotSpot delivers to JDK 1.2.1. Real-life workloads may trigger better or worse responsiveness, but if our results are any indication, Java is finally getting up to speed.