HyperLink   A Study of the Cache and Branch Performance Issues with Running Java on Current Hardware Platforms.
Publication Year:
  Cheng-Hsueh Andrew Hsieh, Marie T. Conte, Teresa L. Johnson, John C. Gyllenhaal, Wen-mei Hwu
  Proceedings of COMPCON, pp. 211-216, February 1997

The Java bytecode language is emerging as a software distribution standard. With major vendors committed to porting the Java run- time environment to their platforms, Java bytecode programs are expected to run without modification on multiple platforms. These first generation run-time environments rely on an interpreter to bridge the gap between the bytecode instructions and the native hardware. However, Java interpreters cause performance problems with microarchitectural features such as the caches and Branch target Buffer. Some of these problems can be solved by translating Java bytecode to native code. In this paper we compare the performance of code run through the SUN Java interpreter to code compiled through Caffeine, a bytecode to native code translator, as well as to compiled C/C++ versions of the code, using large applications and common benchmarks. We discuss the reasons for several performance problems incurred by both approaches to running Java code, and examine possible solutions.