An optimized Java interpreter for connected devices and embedded systems

  • Authors:
  • Andrew Beatty;Kevin Casey;David Gregg;Andrew Nisbet

  • Affiliations:
  • Trinity College, Dublin 2, Ireland;Trinity College, Dublin 2, Ireland;Trinity College, Dublin 2, Ireland;Trinity College, Dublin 2, Ireland

  • Venue:
  • Proceedings of the 2003 ACM symposium on Applied computing
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

The Java Virtual Machine (JVM) is usually implemented by an interpreter or just-in-time (JIT) compiler. JITs provide the best performance, but interpreters have a number of advantages that make them attractive, especially for embedded systems. These advantages include simplicity, portability and low memory requirements. In this paper we describe a new interpreter core for CVM, Sun Microsystem's JVM for connected devices and embedded systems. The interpreter core is portable and programmed in C. An interpreter generator is used to apply a number of optimisations automatically to the source code. Experimental results show that on benchmarks that spend almost all their time in the interpreter (rather than the run time system) it is 28% to 58% faster than the original CVM interpreter, and is only 5% to 9% slower than the highly-sophisticated, hand-tuned, assembly language interpreter in Sun's desktop JVM.