usenix conference policies
The Java HotSpot™ Server Compiler
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.
author = {Michael Paleczny and Christopher Vick and Cliff Click},
title = {The Java {HotSpot{\texttrademark}} Server Compiler},
booktitle = {Java (TM) Virtual Machine Research and Technology Symposium (JVM 01)},
year = {2001},
address = {Monterey, CA},
url = {https://www.usenix.org/conference/jvm-01/java-hotspot{\texttrademark}-server-compiler},
publisher = {USENIX Association},
month = apr
}
connect with us