Check out the new USENIX Web site.

Home About USENIX Events Membership Publications Students
JVM 2001 Abstract

The Java HotSpot™ Server Compiler

Michael Paleczny, Christopher Vick, and Cliff Click, Sun Microsystems


Performance for the Java ™ Platform has evolved in stages. Early VM's were interpreter-only. Later VM's were interpreter plus template generated code, and finally interpreter plus optimized code. The Java HotSpot Virtual Machine™ improves performance through optimization of frequently executed application code. The Client version provides very fast compilation times and a small footprint with modest levels of optimization. The Server version applies more aggressive optimizations to achieve improved asymptotic performance. These optimizations include class-hierarchy aware inlining, fast-path/slow-path idioms, global value-numbering, optimistic constant propagation, optimal instruction selection, graph-coloring register allocation, and peephole optimization.

The first section describes the runtime environment that both the compiler and generated code execute within. Section two summarizes the structure of the server compiler. Sections three through section seventeen cover each phase of compilation in order. Solutions for specific language and runtime issues are described close to the compilation phase that addresses them. Last is a short description of phase costs and performance of generated code. Some names that occur in the compiler's source code are used within the text for readers who download the source under Sun's Community Source License [HS2.0]. The first occurrence of these names is emphasized to avoid confusion.

  • View the full text of this paper in PDF form.

  • If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.

  • To become a USENIX Member, please see our Membership Information.
?Need help? Use our Contacts page.

Last changed: 3 Jan. 2002 ml
Technical Program
JVM 2001 Home