skip to main content
10.1145/155090.155109acmconferencesArticle/Chapter ViewAbstractPublication PagespldiConference Proceedingsconference-collections
Article
Free Access

Space efficient conservative garbage collection

Published:01 June 1993Publication History

ABSTRACT

We call a garbage collector conservative if it has only partial information about the location of pointers, and is thus forced to treat arbitrary bit patterns as though they might be pointers, in at least some cases. We show that some very inexpensive, but previously unused techniques can have dramatic impact on the effectiveness of conservative garbage collectors in reclaiming memory. Our most significant observation is that static data that appears to point to the heap should not result in misidentified references to the heap. The garbage collector has enough information to allocate around such references. We also observe that programming style has a significant impact on the amount of spuriously retained storage, typically even if the collector is not terribly conservative. Some fairly common C and C++ programming style significantly decrease the effectiveness of any garbage collector. These observations suffice to explain some of the different assessments of conservative collection that have appeared in the literature.

References

  1. 1.Standard X3.159-1989, American National $tan. dard for Information Systems - Programming Language - C, American National Standards Institute, Inc.Google ScholarGoogle Scholar
  2. 2.Atkinson, Russ, Alan Demers, Carl Hauser, Christian Jacobi, Peter Kessler, and Mark Weiser, "Experiences Creating a Portable Cedar", Proceedings of the A CM SIGPLAN '89 Conference on Programming Language Design and Implementation, $IG- PLAN Notices 2j, 7 (July 1989), pp. 322-329. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. 3.Bartlett, Joel F. "Compacting garbage collection with ambiguous roots", Lisp Pointers 1, 6 (April- June 1988), pp. 3-12.Google ScholarGoogle Scholar
  4. 4.Bartlett, Joel F., Scheme -> C a Portable Schemeto-C Compiler, WRL Research Report 89/1, Digital Equipment Corporation Western Research Laboratory, January 1989.Google ScholarGoogle Scholar
  5. 5.Bartlett, Joel F., Mostly Copying Garbage Collection Picks Up Generations and C++, Technical Report TN-12, Digital Equipment Corporation Western Research Laboratory, October 1989.Google ScholarGoogle Scholar
  6. 6.Bekkers, Y., O. Ridoux, and L. Ungaro, "Dynamic Memory Management for Sequential Logic Programming Languages, Proceedings of the International Workshop on Memory Management, St. Malo, France, September 1992, Springer LNCS 637, pp. 82-102. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. 7.Boehm, Hans-J., and David Chase, "A Proposal for Garbage-Collector-Safe C Compilation", The Journal of C Language Translation d, 2 (December 1992), pp. 126-141.Google ScholarGoogle Scholar
  8. 8.Boehm, H., A. Demers, and S. Shenker,"Mostly Parallel Garbage Collection", Proceedings of the A CM $IGPLAN '9I Conference on Programming Language Design and Implementation, SIGPLAN Notices 26, 6 (June 1991), pp. 157-164. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. 9.Boehm, Hans-J. and Mark Weiser, "Garbage collection in an uncooperative environment", Software Practice ~4 E~perience 18, 9 (Sept. 1988), pp. 807- 820. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. 10.Chailloux, Emmanuel, "A Conservative Garbage Collector with Ambiguous Roots for Static Typechecking Languages", Proceedings of the International Workshop on Memory Management, St. Malo, France, September 1992, Springer LNCS 637, pp. 218-229. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. 11.Cridlig, Regis, "An Optimizing ML to C Compiler'', A CM SIGPLAN Workshop on ML and its Applications, San Francisco, June 1992, David MacQueen, chair.Google ScholarGoogle Scholar
  12. 12.A. Demers, M. Weiser, B. Hayes, H. Boehm, D. Bobrow, S. Shenker, "Combining Generational and Conservative Garbage Collection: Framework and Implementations", Proceedings of the Seventeenth Annual A CM Symposium on Principles of Programming Languages, January 1990, pp. 261-269. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. 13.Detlefs, David L., "Concurrent Garbage Collection for C++", in Advanced Programming Language implementation, Peter Lee, ed., MIT Press, 1991.Google ScholarGoogle Scholar
  14. 14.Edelson, Daniel, "A Mark-and-Sweep Collector for C++", Conference Record of the Nineteenth Annual A CM $I(TPLAN-SIGA CT Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 1992, pp. 51-58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. 15.Goldberg, Benjamin, and Michael Gloger, "Polymorphic Type Reconstruction for Garbage Collection without Tags", Proceedings of the 199~ ACM Conference on Lisp and Functional Programming, pp. 53-65. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. 16.Hastings, Reed, and Bob Joyce, "Fast Detection of Memory Leaks and Access Errors", Proceedings of the Winter '92 USENIX conference, pp. 125-136.Google ScholarGoogle Scholar
  17. 17.Omohundro, Stephen M., The Sather Language, ICSI, Berkeley, 1991.Google ScholarGoogle Scholar
  18. 18.Rose, John R., and Hans Muller, "Integrating the Scheme and C languages", Proceedings of the 1992 A CM Conference on Lisp and Functional Programming, pp. 247-259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. 19.Rovner, Paul, "On Adding Garbage Collection and Runtime Types to a Strongly-Typed Statically Checked, Concurrent Language", Technical Report CSL-84-7, Xerox Palo Alto Research Center, Palo Alto, CA, July 1985.Google ScholarGoogle Scholar
  20. 20.Ungar, David M., "Generation Scavenging: A Non- Disruptive High Performance Storage Reclamation Algorithm", A CM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, SIGPLAN Notices 19, 5 (May 1984), pp. 157-167. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. 21.Schelter, W. F., and M. Ballantyne, "Kyoto Common Lisp", AI Expert 3 3 (1988), pp. 75-77. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. 22.Weiser, Mark, Alan Demers, and Carl Hauser, "The Portable Common Runtime Approach to interoperability", Proceedings 13th A CM Symposium on Operating Systems Principles, December 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. 23.Wentworth, E. P., "Pitfalls of Conservative Garbage Collection", Software Practice ~4 Emperience 20, 7 (July 1990)pp. 719-727. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. 24.Wilson, Paul R., "Uniprocessor Garbage Collection Techniques", Proceedings of the international Workshop on Memory Management, St. Malo, France, September 1992, Springer LNCS 637, pp. 1-42. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. 25.Zorn, Benjamin, "The Measured Cost of Conservative Garbage Collection", University of Colorado at Boulder, Department of Computer Science Technical Report CU-CS-573-92.Google ScholarGoogle Scholar

Index Terms

  1. Space efficient conservative garbage collection

        Recommendations

        Comments

        Login options

        Check if you have access through your login credentials or your institution to get full access on this article.

        Sign in
        • Published in

          cover image ACM Conferences
          PLDI '93: Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
          August 1993
          313 pages
          ISBN:0897915984
          DOI:10.1145/155090

          Copyright © 1993 ACM

          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: 1 June 1993

          Permissions

          Request permissions about this article.

          Request Permissions

          Check for updates

          Qualifiers

          • Article

          Acceptance Rates

          Overall Acceptance Rate406of2,067submissions,20%

          Upcoming Conference

          PLDI '24

        PDF Format

        View or Download as a PDF file.

        PDF

        eReader

        View online with eReader.

        eReader