JavaTM just-in-time compiler and virtual machine improvements for server and middleware applications

  • Authors:
  • Nikola Grcevski;Allan Kielstra;Kevin Stoodley;Mark Stoodley;Vijay Sundaresan

  • Affiliations:
  • Toronto Lab, IBM Canada Ltd.;Toronto Lab, IBM Canada Ltd.;Toronto Lab, IBM Canada Ltd.;Toronto Lab, IBM Canada Ltd.;Toronto Lab, IBM Canada Ltd.

  • Venue:
  • VM'04 Proceedings of the 3rd conference on Virtual Machine Research And Technology Symposium - Volume 3
  • Year:
  • 2004

Quantified Score

Hi-index 0.01

Visualization

Abstract

This paper describes optimization techniques recently applied to the Just-In-Time compilers that are part of the IBM® Developer Kit for JavaTM and the J9 Java virtual machine specification. It focusses primarily on those optimizations that improved server and middleware performance. Large server and middleware applications written in the Java programming language present a variety of performance challenges to virtual machines (VMs) and justin-time (JIT) compilers; we must address not only steady-state performance but also start-up time. In this paper, we describe 12 optimizations that have been implemented in IBM products because they improve the performance and scalability of these types of applications. These optimizations reduce, for example, the overhead of synchronization, object allocation, and some commonly used Java class library calls. We also describe techniques to address server start-up time, such as recompilation strategies. The experimental results show that the optimizations we discuss in this paper improve the performance of applications such as SPECjbb2000 and SPECjAppServer2002 by as much as 10-15%.