Dynamic compilation and optimization are widely used in heterogenous computing environments and an environments requiring a virtual machine, where an intermediate form of the code is compiled to a native code during execution. An important tradeoff exists between the amount of time spent dynamically optimizing the program and the running time of the program. The time it takes to perform dynamic optimizations can cause signficant delays during execution and also negate some of the performance gains which result from a faster running program. In this research, we present an annotation framework that substantially reduces compilation overhead of Java programs. Annotations consist of analysis information collected off--line and incorporated into Java programs. The annotations are then used by dynamic compilers to guide optimization. Our annotations reduce compilation overhead incurred at all stages of compilation and optimization as well as enable complex optimizations to be performed dynamically. On average the annotation optimizations reduce optimized compilation overhead by 78% and enable total time speedups of 7% on average for the programs examined.
The authors of these documents have submitted their reports to this technical report series for the purpose of non-commercial dissemination of scientific work. The reports are copyrighted by the authors, and their existence in electronic format does not imply that the authors have relinquished any rights. You may copy a report for scholarly, non-commercial purposes, such as research or instruction, provided that you agree to respect the author's copyright. For information concerning the use of this document for other than research or instructional purposes, contact the authors. Other information concerning this technical report series can be obtained from the Computer Science and Engineering Department at the University of California at San Diego, firstname.lastname@example.org.
[ Search ]