Skip to main content

Dynamic runtime optimization

  • Conference paper
  • First Online:
Modular Programming Languages (JMLC 1997)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1204))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. M. M. Brandis; Optimizing Compilers for Structured Programming Languages; (Doctoral Dissertation) Eidgenössische Technische Hochschule Zürich; 1995

    Google Scholar 

  2. G. J. Chaitin; Register Allocation & Spilling via Graph Coloring; In Proceedings of the ACM SIGPLAN '82 Symposium on Compiler Construction, pp 98–105. Published as SIGPLAN Notices 17(6); June 1982

    Google Scholar 

  3. F. C. Chow, J. L. Hennessy; Register Allocation by Priority-Based Coloring; In Proceedings of the ACM SIGPLAN '84 Symposium on Compiler Construction, pp 222–232. Published as SIGPLAN Notices 19(6); June 1984

    Google Scholar 

  4. C. Chambers, D. Ungar; Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs; In Proceedings of the ACM SIGPLAN '90 Conference on Programming Language Design and Implementation, pp 150–164. Published as SIGPLAN Notices 25(6); June 1990

    Google Scholar 

  5. M. Franz; Code-Generation On-the-Fly: A Key to Portable Software; (Doctoral Dissertation) Verlag der Fachvereine, Zürich; 1994

    Google Scholar 

  6. M. Franz, Th. Kistler; Slim Binaries; Technical Report 96-24, Department of Information and Computer Science, UC Irvine; 1996

    Google Scholar 

  7. D. Grove; The Impact of Interprocedural Class Analysis on Optimizations; CASCOM '95 Proceedings; November 1995

    Google Scholar 

  8. G. J. Hansen; Adaptive Systems for the Dynamic Run-Time Optimization of Programs; (Ph.D. Dissertation) Department of Computer Science, Carnegie-Mellon University; 1974

    Google Scholar 

  9. U. Hölzle, C. Chambers, D. Ungar; Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches; In ECOOP '91 Conference Proceedings. Published as Springer Verlag Lecture Notes in Computer Science 512; 1991

    Google Scholar 

  10. U. Hölzle; Adaptive Optimization for SELF: Reconciling High Performance with Exploratory Programming; (Ph.D. Dissertation) Department of Computer Science, Stanford University; 1994

    Google Scholar 

  11. U. Hölzle, D. Ungar; Optimizing Dynamically-Dispatched Calls with RunTime Type Feedback; In SIGPLAN '94 Conference on Programming Language Design and Implementation, pp 326–336. Published as SIGPLAN Notices 29(6); June 1994

    Google Scholar 

  12. IBM; PowerPC and POWER2: Technical Aspects of the New IBM RISC System/6000; IBM Order Number SA23-2737-00

    Google Scholar 

  13. D. Ingalls; The Execution Time Profile as a Programming Tool; In Design and Optimization of Compilers, pp 107–128, Prentice-Hall; 1971

    Google Scholar 

  14. S. Jasik; Monitoring Execution on the CDC 6000's; In Design and Optimization of Compilers, pp 129–136, Prentice-Hall; 1971

    Google Scholar 

  15. N. Jones; Special Issue on Partial Evaluation; Journal of Functional Programming 3(4); 1993

    Google Scholar 

  16. D. Keppel, S. J. Eggers, R. R. Henry; Evaluating Runtime-Compiled Value-Specific Optimizations; Technical Report 93-11-02, Department of Computer Science and Engineering, University of Washington; 1993

    Google Scholar 

  17. D. E. Knuth; An Empirical Study of FORTRAN Programs; IBM Report RC 3276; 1970

    Google Scholar 

  18. T. Lindholm, F. Yellin, B. Joy, K. Walrath; The Java Virtual Machine Specification; Addison-Wesley; 1996

    Google Scholar 

  19. R. Surati; A Parallelizing Compiler Based on Partial Evaluation; Technical Report AITR-1377, Artificial Intelligence Laboratory, Massachusetts Institute of Technology; 1993

    Google Scholar 

  20. A. Srivastava, D. W. Wall; A Practical System for Intermodule Code Optimization at Link-Time; Journal of Programming Languages; 1993

    Google Scholar 

  21. David Ungar, R. B. Smith; SELF: The Power of Simplicity; In OOPSLA '87 Conference Proceedings, pp 227–241. Published as SIGPLAN Notices 22(12); December 1987

    Google Scholar 

  22. D. W. Wall; Global Register Allocation at Link Time; In Proceedings of SIGPLAN '86 Symposium on Compiler Construction, pp 264–275; July 1986

    Google Scholar 

  23. N. Wirth, J. Gutknecht; The Oberon System; In Software-Practice and Experience 19(9), pp 857–893; September 1989

    Google Scholar 

  24. N. Wirth; The Programming Language Oberon; In Software-Practice and Experience 18(7), pp 671–690; July 1988

    Google Scholar 

  25. M. Wolf, M. Lam; A Data Locality Optimization Algorithm; In Proceedings of the SIGPLAN '91 Conference on Programming Language Design and Implementation, pp 30–44, Published as SIGPLAN Notices 26(6); June 1991

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Hanspeter Mössenböck

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kistler, T. (1997). Dynamic runtime optimization. In: Mössenböck, H. (eds) Modular Programming Languages. JMLC 1997. Lecture Notes in Computer Science, vol 1204. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-62599-2_30

Download citation

  • DOI: https://doi.org/10.1007/3-540-62599-2_30

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-62599-5

  • Online ISBN: 978-3-540-68328-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics