𝔖 Bobbio Scriptorium
✦   LIBER   ✦

Optimizing Java bytecodes

✍ Scribed by Cierniak, Michał; Li, Wei


Publisher
John Wiley and Sons
Year
1997
Tongue
English
Weight
111 KB
Volume
9
Category
Article
ISSN
1040-3108

No coin nor oath required. For personal study only.

✦ Synopsis


We have developed a research compiler for Java class files. The compiler, which we call Briki, is designed to test new compilation techniques. We focus on optimizations which are only possible or much easier to perform on a high-level intermediate representation. We have designed such a representation, JavaIR, and have written a front-end which recovers the high-level structure from the information from the class file.

Some of the high-level optimizations can be performed by the Java compiler which produces the class file. There is, however, a set of machine-dependent optimizations which have to be customized for the specific architecture and so can only be performed when the machine code is generated from the bytecodes, e.g. in a just-in-time (JIT) compiler.

We choose memory hierarchy optimizations as an example of machine-dependent techniques. We show that there is an intersection of the set of machine-dependent optimizations and the set of high-level optimizations. One such example is array remapping, which requires multidimensional array references which are not present in the bytecodes and at the same time requires information about memory organization and the mapping of bytecodes to machine instructions.

We develop a set of optimizations for accessing array elements and object fields and show their impact on a set of benchmarks which we run on two machines with a JIT compiler. The execution times are reduced by as much as 50% and we argue that the improvement could be even higher with a more mature JIT technology.


📜 SIMILAR VOLUMES


Annotating the Java bytecodes in support
✍ Hummel, Joseph; Azevedo, Ana; Kolson, David; Nicolau, Alexandru 📂 Article 📅 1997 🏛 John Wiley and Sons 🌐 English ⚖ 117 KB 👁 1 views

The efficient execution of Java programs presents a challenge to hardware and software designers alike. The difficulty, however, lies with the Java bytecodes. Their model of a simplistic, platform-independent stack machine is well-suited for portability, though at the expense of execution speed. Var

A Java bytecode optimizer using side-eff
✍ Clausen, Lars R. 📂 Article 📅 1997 🏛 John Wiley and Sons 🌐 English ⚖ 204 KB

This paper describes Cream, an optimizer for Java bytecode using side-effect analysis to improve the optimizations. Dead-code elimination and loop-invariant removal are implemented and tested, as well as several variations of the side-effect analysis. The optimizer is tested on real-world applicatio

Java signal processing: FFTs with byteco
✍ Glossner, John; Thilo, Jesse; Vassiliadis, Stamatis 📂 Article 📅 1998 🏛 John Wiley and Sons 🌐 English ⚖ 90 KB

This paper investigates the possibility of using Java as a language for digital signal processing. We compare the performance of the fast Fourier transform using Java interpreters, compilers, and native execution. To characterize the Java language as a platform for signal processing, we have impleme

Compiling lazy functional programs to Ja
✍ Gary Meehan; Mike Joy 📂 Article 📅 1999 🏛 John Wiley and Sons 🌐 English ⚖ 152 KB 👁 1 views

The Java Virtual Machine (JVM) was designed as the target for Java compilers, but there is no reason why it cannot be used as the target for other languages. We describe the implementation of a compiler which translates a lazy, weakly-typed functional program into Java class files. We compare the pe

Optimizing Java: theory and practice
✍ Budimlic, Zoran; Kennedy, Ken 📂 Article 📅 1997 🏛 John Wiley and Sons 🌐 English ⚖ 180 KB 👁 1 views

The enormous popularity of the Internet has made an instant star of the Java programming language. Java's portability, reusability, security and clean design has made it the language of choice for Web-based applications and a popular alternative to C++ for object-oriented programming. Unfortunately,

Algebraic Java classes for numerical opt
✍ Schwab, Matthias; Schroeder, Joel 📂 Article 📅 1998 🏛 John Wiley and Sons 🌐 English ⚖ 186 KB

Our software, Jest, comprises a general and extendible library for numerical optimization for science and engineering, Jam, and a particular extension of that framework for seismic image processing, Jag. Jest successfully separates optimization and application software without imposing limitations o