Skip to Main Content
With the promise of machine independence and efficient portability, JAVA has gained widespread popularity in the industry. Along with this promise comes the need for designing an efficient runtime environment that can provide high-end performance for JAVA-based applications. In other words, the performance of JAVA applications depends heavily on the design and optimization of the JAVA Virtual Machine (JVM). In this paper, we start by evaluating the performance of a JAVA server application (SPECjbb2000™) on an Intel platform running a rudimentary JVM. We present a measurement-based methodology for identifying areas of potential improvement and subsequently evaluating the effect of JVM optimizations and other platform optimizations. The compiler optimizations presented and discussed in this paper include peephole optimizations and JAVA specific optimizations. In addition, we also study the effect of optimizing the garbage collection mechanism and the effect of improved locking strategies. The identification and analysis of these optimizations are guided by the detailed knowledge of the microarchitecture and the use of performance measurement and profiling tools (EMON and VTune) on Intel platforms.