Virtual machines for today's object-oriented programming languages face significant performance challenges, when compared to traditional static optimizers. Most notably, portable program representations force the virtual machine to perform most codes generation and optimization at runtime. To manage runtime compilation, high-performance virtual machines have adopted sophisticated online adaptive optimization systems to manage runtime execution modes.
This article presents an architecture and policy framework for adaptive optimization in virtual machines. The architecture supports construction of an extensible adaptive optimization system based on independent components to manage profiling, decision-making, and recompilation. We present a policy framework for decision-making based on an analytic model of costs and benefits. We have implemented the system in the Jikes Research Virtual Machine, and present a detailed empirical evaluation.
By: Matthew Arnold; Stephen Fink; David Grove; Michael Hind; Peter F. Sweeney
Published in: RC23429 in 2004
LIMITED DISTRIBUTION NOTICE:
This Research Report is available. This report has been submitted for publication outside of IBM and will probably be copyrighted if accepted for publication. It has been issued as a Research Report for early dissemination of its contents. In view of the transfer of copyright to the outside publisher, its distribution outside of IBM prior to publication should be limited to peer communications and specific requests. After outside publication, requests should be filled only by reprints or legally obtained copies of the article (e.g., payment of royalties). I have read and understand this notice and am a member of the scientific community outside or inside of IBM seeking a single copy only.
Questions about this service can be mailed to firstname.lastname@example.org .