Making pure object-oriented languages practical
OOPSLA '91 Conference proceedings on Object-oriented programming systems, languages, and applications
Reconciling responsiveness with performance in pure object-oriented languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
DAISY: dynamic compilation for 100% architectural compatibility
Proceedings of the 24th annual international symposium on Computer architecture
The Jalapeño dynamic optimizing compiler for Java
JAVA '99 Proceedings of the ACM 1999 conference on Java Grande
Dynamo: a transparent dynamic optimization system
PLDI '00 Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementation
Adaptive optimization in the Jalapeño JVM
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Online feedback-directed optimization of Java
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Dynamic binary translation for accumulator-oriented architectures
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Efficient implementation of the smalltalk-80 system
POPL '84 Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Adaptive optimization for self: reconciling high performance with exploratory programming
Adaptive optimization for self: reconciling high performance with exploratory programming
Mixed-mode Bytecode Execution
The java hotspotTM server compiler
JVM'01 Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium - Volume 1
Improving virtual machine performance using a cross-run profile repository
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java client ahead-of-time compiler for embedded systems
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Client ahead-of-time compiler for embedded Java platforms
Software—Practice & Experience
Hi-index | 0.00 |
In Java Virtual Machines employing dynamic compilation, there exists a tradeoff between compilation overhead and execution time. The compilation efforts are directed selectively on program hotspots so that gains in performance due to compiled code can overcome compilation cost. Using online profile incurs runtime-profiling overhead. Using only offline profile data might result in selecting cold methods for compilation when offline profile does not mirror current application behavior. Hence we propose a hybrid scheme that incorporates both online and offline profile to identify selective compilation candidates. We also discuss the significance of selective compilation ordering especially in applications which exhibit phase changes with respect to the method invocations it makes. This results in the hotspots of the program also changing as the application executes. Hence it is important for the selective compilation scheme to be highly responsive to phase changes and target the compilation efforts on the new hotspots, as they appear. We propose a temporal event graph for capturing this phase changing behavior of the application (in terms of the method calls it makes) and use this information in making better selective compilation decisions.