Object type directed garbage collection to improve locality

  • Michael S. Lam
  • Paul R. Wilson
  • Thomas G. Moher
Improving Locality
Part of the Lecture Notes in Computer Science book series (LNCS, volume 637)


Most garbage collected systems have excessive need for RAM to achieve reasonable performance without too much paging. The reason for such poor locality is the way data are organized in the heap. Conventional organization approaches such as breadth-first ordering do not always bring objects in the same active working set together. When such co-active objects are distributed throughout the heap (on different memory pages), high paging costs will result from accessing objects during execution. To alleviate such poor ordering, researchers have tried many different approaches: depth-first ordering, dynamic reorganization, object creation ordering, and hierarchical decomposition. Each of these approaches has its associated costs, effectiveness, and limitations. This paper presents a new ordering approach to improve locality. By paying a little attention to object type and format, effective heuristics can be derived to group co-active objects together. To investigate this idea, a number of such object type directed grouping techniques are incorporated into a Scheme-48 system. Page fault reduction of up to an order of magnitude was observed.


Memory Size Garbage Collection Pointer Field Virtual Memory Hierarchical Decomposition 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    ndre, D.L.: ”Paging in Lisp Programs,” M.S. Thesis, University of Maryland, 1986.Google Scholar
  2. 2.
    Cattell, R.G.G.: Object Data Management. Reading, MA: Addison-Welsey.Google Scholar
  3. 3.
    Caudill, P., Wirfs-Brock, A.: ”A third generation Smalltalk-80 implementation.” OOPSLA'86 Conference Proceedings, pages 119–130, Portland, OR, September 1986.Google Scholar
  4. 4.
    Chambers, C., Ungar, D.: ”Customization: Optimizing Compiler Technology for SELF, a Dynamically-Typed Object Oriented Language.” Proc. SIGPLAN 89 Conference on Programming Language Design and Implementation, June 1989.Google Scholar
  5. 5.
    Cheney, C.: ”A nonrecursive list compacting algorithm,” Communications of the ACM, 13(11):677–678, November 1970.CrossRefGoogle Scholar
  6. 6.
    Courts, R.: ”Improving locality of reference in a garbage-collecting memory management system.” Communications of the ACM, 31(9):1128–1138, September 1988.Google Scholar
  7. 7.
    Fenichel, R., and Yochelson, J.: ”A Lisp garbage-collector for virtual memory computer systems.” Communications of the ACM, 12(11):611–612, November 1969.CrossRefGoogle Scholar
  8. 8.
    Lieberman, H., and Hewitt, C.: ”A real-time garbage collector based on the lifetimes of objects,” Communications of the ACM, 26(6):419–429, June 1983.Google Scholar
  9. 9.
    McCarthy, J.: ”Recursive functions of symbolic expressions and their computations by machine, part I.,” Communications of the ACM, 3(4):184–195, April 1960.CrossRefGoogle Scholar
  10. 10.
    Moon, D.: ”Garbage collection in a large Lisp system,” 1984 ACM Symposium on LISP and Functional Programming, pages 235–246, Austin, Texas, August 1984.Google Scholar
  11. 11.
    Rees, J.A., Clinger, W., et al.: ”Revised Report on the Algorithmic Language Scheme,” Sigplan Notice 21, 21,12 pages 37–39, December 1986.Google Scholar
  12. 12.
    Shaw, R.: Empirical analysis of a LISP System. PhD thesis, Stanford University, February 1986.Google Scholar
  13. 13.
    Stamos, J.W.: ”Static grouping of small objects to enhance performance of a paged virtual memory,” ACM Transactions on Programming Languages and Systems, 2(2), May 1984, pp. 155–180.Google Scholar
  14. 14.
    Steele, G., Sussman, G.: The revised report on Scheme, a dialect of Lisp. MIT Artificial Intelligence Memo, January 1978.Google Scholar
  15. 15.
    Ungar, D.: ”Generation scavenging: A non-disruptive high performance storage reclamation algorithm.” SIGSOFT/SIGPLAN Practical Programming Environments Conference, pages 157–167, April 1984.Google Scholar
  16. 16.
    Ungar, D.: ”The Design and Evaluation of a High Performance Smalltalk System,” Ph.D. Thesis, UC Berkeley, UCB/CSD 86/287, March 1986.Google Scholar
  17. 17.
    Wilson, P., Lam, M., and Moher, T.: ”Effective Static-graph Reorganization to Improve Locality,” Proc. SIGPLAN 91 Conference on Programming Language Design and Implementation, June 1991.Google Scholar
  18. 18.
    Wilson, P., Lam, M., and Moher, T.: ”Caching Considerations for Generational Garbage Collection,” 1992 ACM Conference on Lisp and Functional Programming, June 1992.Google Scholar
  19. 19.
    Zorn, B.: ”Comparative Performance Evaluation of Garbage Collection Algorithms,” Ph.D. Thesis UC Berkeley EECS Dept., 1989Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1992

Authors and Affiliations

  • Michael S. Lam
    • 1
  • Paul R. Wilson
    • 2
  • Thomas G. Moher
    • 1
  1. 1.University of Illinois at ChicagoUSA
  2. 2.University of Texas at AustinUSA

Personalised recommendations