A study of the cache and branch performance issues with running Java on current hardware platforms

  • Authors:
  • C.-H. A. Hsieh;M. T. Conte;T. L. Johnson;J. C. Gyllenhaal;W.-M. W. Hwu

  • Affiliations:
  • -;-;-;-;-

  • Venue:
  • COMPCON '97 Proceedings of the 42nd IEEE International Computer Conference
  • Year:
  • 1997

Quantified Score

Hi-index 0.01

Visualization

Abstract

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 the Branch Target Buffer. Some of these problems can be solved by translating Java bytecode to native code. 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.