Monitors and Exceptions: How to implement Java efficiently
Andreas Krall and
Mark Probst
Institut für Computersprachen
Technische Universität Wien
Argentinierstraße 8
A-1040 Wien, Austria
andi@complang.tuwien.ac.at
Abstract
Efficient implementation of monitors and exceptions is crucial for the
performance of Java. One implementation of threads showed a factor of
30 difference in run time on some benchmark programs. This article
describes an efficient implementation of monitors for Java as used in
the CACAO just-in-time compiler. With this implementation the thread
overhead is less than 40% for typical application programs and can be
completely eliminated for some applications. This article also gives
the implementation details of the new exception handling scheme in
CACAO. The new approach reduces the size of the generated native code
by a half and allows null pointers to be checked by hardware. By using
these techniques, the CACAO system has become the fastest JavaVM
implementation for the Alpha processor.