Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article
Free access

Cache performance of garbage-collected programs

Published: 01 June 1994 Publication History

Abstract

As processor speeds continue to improve relative to main-memory access times, cache performance is becoming an increasingly important component of program performance. Prior work on the cache performance of garbage-collected programs either argues or assumes that conventional garbage-collection methods will yield poor performance, and has therefore concentrated on new collection algorithms designed specifically to improve cache-level reference locality.
This paper argues to the contrary: Many programs written in garbage-collected languages are naturally well-suited to the direct-mapped caches typically found in modern computer systems. Garbage-collected programs written in a mostly-functional style should perform well when simple linear storage allocation and an infrequently-run generational compacting collector are employed; sophisticated collectors intended to improve cache performance are unlikely to be necessary. As locality becomes ever more important to program performance, programs of this kind may turn out to have a significant performance advantage over programs written in traditional languages.

References

[1]
Luigia Aiello and Gianfranco Print. An efficient interpreter for the lambda-calculus. Journal of Computer and System Sciences, 23(3):383-424, December 1981.
[2]
Andrew W. Appel. Simple generational garbage collection and fast allocation. Software--Practice and Experience, 19(2):171-183, February 1989.
[3]
Andrew W. Appel. Compiling with Continuations. Cambridge University Press, 1992.
[4]
Anita Borg, R. E. Kessler, Georgia Lazana, and David W. Wall. Long Address Traces from RISC Machines: Generation and Analysis. Research report 89/14, Digital Equipment Corporation Western Research Laboratory, Palo Alto, California, September 1989.
[5]
Luca Cardelli, James Donahue, Lucille Glassman, Mick Jordan, Bill Kalsow, and Greg Nelson. Modula-3 Report (revised). Research Report 52, Digital Equipment Corporation Systems Research Center, Palo Alto, California, November 1989.
[6]
C.J. Cheney. A nonrecursive list compacting algorithm. Communications of the A CM, 13(11):677-678, November 1970.
[7]
Robert Courts. Improving locality of reference in a garbagecollecting memory management system. Communications of the ACM, 31(9):1128-1138, September 1988.
[8]
Amer Diwan, David Tarditi, and Eliot Moss. Memory Subsystem Performance of Programs with Intensive Heap Allocation. Technical Report 93-227, School of Computer Science, Carnegie Mellon University, Pittsburgh, Pennsylvania, December 1993.
[9]
Amer Diwan, David Tarditi, and Eliot Moss. Memory subsystem performance of programs with copying garbage collection. In Symposium on Principles of Programming Languages, pages 1-13, ACM, January 1994.
[10]
William M. Farmer, Joshua D. Guttman, and F. Javmr Thayer. IMPS: An interactive mathematical proof system. In M. E. Stickel, editor, Tenth International Conference on Automated Deductwn, pages 653-654, Volume 449 of Lecture Notes in Artificial Intelligence, Springer-Verlag, 1990.
[11]
Mark Feeley and James S. Miller. A parallel virtual machine for efficient Scheme compilation. In Conference on Lisp and Functional Programming, pages 119-130, ACM, 1990.
[12]
Robert R. FenicheI and Jerome C. Yochelson. A LISP garbage-collector for virtual-memory computer systems. Communications of the ACM, 12(11):611-612, November 1969.
[13]
John L. Hennessey and David A. Patterson. Computer Architecture: A Quantitative Approach. Morgan Kaufmann, Palo Alto, California, 1990.
[14]
John L. Hennessy and Norman P. Jouppi. Computer technology and architecture: An evolving interaction. IEEE Computer, 24(9):18-29, September 1991.
[15]
Mark D. Hill. Aspects of Cache Memory and Instruction Buffer Performance. Ph.D. thesis, Computer Science Division, University of California at Berkeley, November 1987. Available as UCB/CSD Technical Report 87/381.
[16]
Norman P. Jouppi. Cache write policies and performance. In International Symposium on Computer Architecture, pages 191-201, iEEE, May 1993.
[17]
Gerry Kane. MIPS RISC Architecture. Prentice-Hall, Englewood Cliffs, N J, 1988.
[18]
Philip J. Koopman, Jr., Peter Lee, and Daniel P. Siewiorek. Cache behavior of combinator graph reduction. A CM Transactions on Programming Languages and Systems, 14(2):265- 297, April 1992.
[19]
David A. Kranz. Orbit: An Optimizing Compiler for Scheme. Ph.D. thesis, Yale University, New Haven, Connecticut, February 1988.
[20]
David A. Kranz, Richard Kelsey, Jonathan A. Rees, Paul Hudak, James Philbin, and Norman I. Adams. Orbit: An optimizing compiler for Scheme. In Symposium on Compiler Construction, pages 219-233, ACM, June 1986.
[21]
Monica S. Lain, Edward E. Rothberg, and Michael E. Wolf. The cache performance and optimizations of blocked algorithms. In Conference on Architectural Support for Programming Languages and Operating Systems, pages 63-74, ACM, April 1991.
[22]
Henry Lieberman and Carl Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the A CM, 26(6):419-429, June 1983.
[23]
Barbara Liskov, Russell Atkinson, Toby Bloom, Eliot Moss, J. Craig Schaffert, Robert Scheifier, and Alan Snyder. CLU Reference Manual. Volume 114 of Lecture Notes in Computer Science, Springer-Verlag, Berlin, 1981.
[24]
Robin Milner, Mads Torte, and Robert Harper. The Definition of Standard ML. MIT Press, Cambridge, Massachusetts, 1990.
[25]
David A. Moon. Garbage collection in a large Lisp system. In Conference on Lisp and Functional Programming, pages 235- 246, ACM, 1984.
[26]
Laurence C. Paulson. ML for the Working Programmer. Cambridge University Press, 1992.
[27]
Steven A. Przybylski. Cache and Memory Hierarchy Design: A Performance-Directed Approach. Morgan Kaufmann, Palo Alto, California, 1990.
[28]
Steven A. Przybylski. DRAMs for new memory subsystems. Microprocessor Report, 15 February, 8 March, and 29 March 1993.
[29]
Jonathan A. Rees. The T Manual. Computer Science Department, Yale University, New Haven, Connecticut, fourth edition, January 1984.
[30]
Jonathan A. Rees and Norman I. Adams. T: A dialect of Lisp or, Lambda: The ultimate software tool. In Conference on Lisp and Functional Programm2ng, pag~ 114-122. ACM, 1982.
[31]
Jonathan A. Rees and William Clinger. Revised$ report on the algorithmic language Scheme. A CM SIGPLAN Notices, 21(12), December 1986.
[32]
Mark B. Reinhold. Typechecking Is Undecidable When 'Type' is a Type. Technical Report 458, MIT Laboratory for Computer Science, Cambridge, Massachusetts, December 1989.
[33]
Mark B. Reinhold. Cache Performance of Garbage-Collected Programming Languages. Technical Report 581, MIT Laboratory for Computer Science, Cambridge, Massachusetts, September 1993.
[34]
Thomas D. Simon. Optimization of an O(N) Algorithm for N-body Simulations. Bachelor's thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, December 1991.
[35]
Patrick G. Sobalvarro. A Lifetime-based Garbage Collector for LISP Systems on General-Purpose Computers. Bachelor's thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, September 1988.
[36]
David Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Symposium on Practical Software Development Environments, pages 157-167, ACM, April 1984.
[37]
Jon L. White. Address/memory management for a gigantic LISP environment or, GC considered harmful. In Lisp Conference, pages 119-127, ACM, July 1980.
[38]
Paul R. Wilson, Michael $. Lam, and Thomas G. Moher. Caching Considerations for Generational Garbage Collection: A Case for Large and Set-Associative Caches. Technical Report UIC-EECS-90-5, Software Systems Laboratory, University of Illinois at Chicago, Chicago, IL, December 1990.
[39]
Paul R. Wilson, Michael S. Lam, and Thomas G. Moher. Caching considerations for generational garbage collection. In Conference on Lisp and Functional Programming, pages 32- 42, ACM, 1992. An earlier version appeared as {38}.
[40]
Feng Zhao. An O(N) Algorithm for Three-dimenswnal N- body simulations. Master's thesis, Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology, October 1987.
[41]
Benjamin G. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. Ph.D. thesis, Computer Science Division, University of California at Berkeley, December 1989. Available as UCB/CSD Technical Report 89/544.
[42]
Benjamin G. Zorn. The Effect of Garbage Collection on Cache Performance. Technical Report CU-CS-528-91, Department of Computer Science, University of Colorado at Boulder, May 1991.

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 29, Issue 6
June 1994
360 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/773473
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '94: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation
    August 1994
    360 pages
    ISBN:089791662X
    DOI:10.1145/178243
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 1994
Published in SIGPLAN Volume 29, Issue 6

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)45
  • Downloads (Last 6 weeks)14
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

View Options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Get Access

Login options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media