|
Abstract : |
This survey describes research directions in techniques to improve the performance of programs written in the Java programming language. The standard technique for Java execution is interpretation. A Javainterpreter dynamically executes Java bytecodes, which comprise the instruction set of the Java Virtual Machine (JVM). Execution-time performance of Java programs can be improved through compilation. Various types of Java compilers have been proposed including Just-In-Time (JIT) compilers that compile bytecodes into native processor instructions on the fly # direct compilers that directly translate the Java source code into the target processor's native language # and bytecode-to-source translators that generate either native code or an intermediate language, such as C, from the bytecodes. Some techniques, including bytecode optimization and executing Java programs in parallel, attempt to improve Javaruntime performance while maintaining Java's portability. Another alternative for executing 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 provide information about the various Javabenchmarks that are being used bytheJavacommunity for performance evaluation of the differenttechniques. Finally,we conclude with a discussion comparing the performance of the alternativeJava execution techniques based on reported results. Categories and Subject Descriptors:, |