Nothing Special   »   [go: up one dir, main page]

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

Space efficient conservative garbage collection

Published: 01 June 1993 Publication 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]
Standard X3.159-1989, American National $tan. dard for Information Systems - Programming Language - C, American National Standards Institute, Inc.
[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.
[3]
Bartlett, Joel F. "Compacting garbage collection with ambiguous roots", Lisp Pointers 1, 6 (April- June 1988), pp. 3-12.
[4]
Bartlett, Joel F., Scheme -> C a Portable Schemeto-C Compiler, WRL Research Report 89/1, Digital Equipment Corporation Western Research Laboratory, January 1989.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[13]
Detlefs, David L., "Concurrent Garbage Collection for C++", in Advanced Programming Language implementation, Peter Lee, ed., MIT Press, 1991.
[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.
[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.
[16]
Hastings, Reed, and Bob Joyce, "Fast Detection of Memory Leaks and Access Errors", Proceedings of the Winter '92 USENIX conference, pp. 125-136.
[17]
Omohundro, Stephen M., The Sather Language, ICSI, Berkeley, 1991.
[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.
[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.
[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.
[21]
Schelter, W. F., and M. Ballantyne, "Kyoto Common Lisp", AI Expert 3 3 (1988), pp. 75-77.
[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.
[23]
Wentworth, E. P., "Pitfalls of Conservative Garbage Collection", Software Practice ~4 Emperience 20, 7 (July 1990)pp. 719-727.
[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.
[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.

Cited By

View all
  • (2024)PMAlloc: A Holistic Approach to Improving Persistent Memory AllocationACM Transactions on Computer Systems10.1145/364388642:3-4(1-52)Online publication date: 20-Sep-2024
  • (2023)Fat Pointers for Temporal Memory Safety of CProceedings of the ACM on Programming Languages10.1145/35860387:OOPSLA1(316-347)Online publication date: 6-Apr-2023
  • (2023)Dynamic code compression for JavaScript engineSoftware: Practice and Experience10.1002/spe.318653:5(1196-1217)Online publication date: 4-Feb-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

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
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 June 1993

Permissions

Request permissions for this article.

Check for updates

Qualifiers

  • Article

Conference

PLDI93
Sponsor:

Acceptance Rates

Overall Acceptance Rate 406 of 2,067 submissions, 20%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)187
  • Downloads (Last 6 weeks)37
Reflects downloads up to 09 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2024)PMAlloc: A Holistic Approach to Improving Persistent Memory AllocationACM Transactions on Computer Systems10.1145/364388642:3-4(1-52)Online publication date: 20-Sep-2024
  • (2023)Fat Pointers for Temporal Memory Safety of CProceedings of the ACM on Programming Languages10.1145/35860387:OOPSLA1(316-347)Online publication date: 6-Apr-2023
  • (2023)Dynamic code compression for JavaScript engineSoftware: Practice and Experience10.1002/spe.318653:5(1196-1217)Online publication date: 4-Feb-2023
  • (2022)Boehm-Demers-Weiser Garbage Collection on MorelloProceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3560808(150-151)Online publication date: 14-Sep-2022
  • (2022)Capability Boehm: challenges and opportunities for garbage collection with capability hardwareProceedings of the 18th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/3516807.3516823(81-87)Online publication date: 25-Feb-2022
  • (2020)Sound garbage collection for C using pointer provenanceProceedings of the ACM on Programming Languages10.1145/34282444:OOPSLA(1-28)Online publication date: 13-Nov-2020
  • (2020)Image Retrieval for Complex Queries Using Knowledge EmbeddingACM Transactions on Multimedia Computing, Communications, and Applications10.1145/337578616:1(1-23)Online publication date: 29-Mar-2020
  • (2019)Parallel nondeterministic programming as a language extension to C (short paper)Proceedings of the 18th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences10.1145/3357765.3359524(20-26)Online publication date: 21-Oct-2019
  • (2018)Balanced double queues for GC work-stealing on weak memory modelsACM SIGPLAN Notices10.1145/3299706.321057053:5(109-119)Online publication date: 18-Jun-2018
  • (2018)Balanced double queues for GC work-stealing on weak memory modelsProceedings of the 2018 ACM SIGPLAN International Symposium on Memory Management10.1145/3210563.3210570(109-119)Online publication date: 18-Jun-2018
  • Show More Cited By

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