Techniques for obtaining high performance in Java programs

Citation
Ih. Kazi et al., Techniques for obtaining high performance in Java programs, ACM C SURV, 32(3), 2000, pp. 213-240
Citations number
47
Categorie Soggetti
Computer Science & Engineering
Journal title
ACM COMPUTING SURVEYS
ISSN journal
03600300 → ACNP
Volume
32
Issue
3
Year of publication
2000
Pages
213 - 240
Database
ISI
SICI code
0360-0300(200009)32:3<213:TFOHPI>2.0.ZU;2-R
Abstract
This survey describes research directions in techniques to improve the perf ormance of programs written in the Java programming language. The standard technique for Java execution is interpretation, which provides for extensiv e portability of programs. A Java interpreter dynamically executes Java byt ecodes, which comprise the instruction set of the Java Virtual Machine (JVM ). Execution time performance of Java programs can be improved through comp ilation, possibly at the expense of portability. Various types of Java comp ilers have been proposed, including Just-In-Time (JIT) compilers that compi le bytecodes into native processor instructions on the fly; direct compiler s that directly translate the Java source code into the target processor's native language; and bytecode-to-source translators that generate either na tive code or an intermediate language, such as C, from the bytecodes. Addit ional techniques, including bytecode optimization, dynamic compilation, and executing Java programs in parallel, attempt to improve Java run-time perf ormance while maintaining Java's portability. Another alternative for execu ting Java programs is a Java processor that implements the JVM directly in hardware. In this survey, we discuss the basic features, and the advantages and disadvantages, of the various Java execution techniques. We also discu ss the various Java benchmarks that are being used by the Java community fo r performance evaluation of the different techniques. Finally, we conclude with a comparison of the performance of the alternative Java execution tech niques based on reported results.