Abstract

In the past few years, code optimization has become a major field of research. Many efforts have been undertaken to find new sophisticated algorithms that fully exploit the computing power of today's advanced microprocessors. Most of these algorithms do very well in statically linked, monolithic software systems, but perform perceptibly worse in extensible systems. The modular structure of these systems imposes a natural barrier for intermodular compile-time optimizations. In this paper we discuss a different approach in which optimization is no longer performed at compile-time, but is delayed until runtime. Reoptimized module versions are generated on-the-fly while the system is running, replacing earlier less optimized versions.In the first part of this paper we argue that dynamic runtime reoptimization will play an important role in future software systems and discuss the requirements for a modular, extensible operating system to support dynamic runtime optimization. In the second part we give an overview of promising intermodular and profile-guided reoptimizations. We also measure the characteristics of a modular, extensible operating system in order to estimate the potential of such optimizations.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call