Title :
Design and Engineering of a Dynamic Binary Optimizer
Author :
Duesterwald, Evelyn
Author_Institution :
IBM T. J. Watson Res. Center, Yorktown Heights, NY, USA
Abstract :
In today´s software, which increasingly utilizes dynamic class loading, shared libraries, and interconnected components, the power and reach of static compiler optimization is diminishing. An exciting new paradigm of transparent dynamic binary optimization is emerging, aimed at improving the performance of a program while it executes. Recently, several dynamic binary optimization systems have appeared in the literature. They all share a fundamental property: the ability to observe and modify instructions of the executing program immediately before they run. Importantly, recent advances allow this capability to be offered without having to pay the price of performance degradation. This paper describes the intricacies of a dynamic binary optimizer and how to build the core functionalities of observing and modifying executing instructions. We illustrate the major design decisions and tradeoffs and point to the important engineering challenges.
Keywords :
binary codes; instruction sets; optimising compilers; software engineering; dynamic binary optimization; dynamic class loading; interconnected components; shared libraries; static compiler optimization; Design engineering; Design optimization; Java; Joining processes; Optimizing compilers; Pipelines; Power engineering and energy; Program processors; Runtime; Software libraries; Adaptive systems; binary optimizations; dynamic optimization; runtime system;
Journal_Title :
Proceedings of the IEEE
DOI :
10.1109/JPROC.2004.840302