The measured cost of conservative garbage collection

  title={The measured cost of conservative garbage collection},
  author={Benjamin G. Zorn},
  journal={Software: Practice and Experience},
  • B. Zorn
  • Published 1 July 1993
  • Computer Science
  • Software: Practice and Experience
Because dynamic memory management is an important part of a large class of computer programs, high‐performance algorithms for dynamic memory management have been, and will continue to be, of considerable interest. Experience indicates that for many programs, dynamic storage allocation is so important that programmers feel compelled to write and use their own domain‐specific allocators to avoid the overhead of system libraries. As an alternative to explicit storage management techniques… 
Quantifying the performance of garbage collection vs. explicit memory management
The results quantify the time-space tradeoff of garbage collection: with five times as much memory, an Appel-style generational collector with a non-copying mature space matches the performance of reachability-based explicit memory management.
Space efficient conservative garbage collection
It is shown that some very inexpensive, but previously unused techniques can have dramatic impact on the effectiveness of conservative garbage collectors in reclaiming memory.
Automatic vs. Explicit Memory Management: Settling the Performance Debate
This paper presents the first empirical comparison of the performance costs of automatic versus explicit memory management in a garbage-collected language and confirms that garbage collection requires six times the physical memory to achieve this performance and suffers order-of-magnitude performance penalties when paging occurs.
Non-compacting memory allocation and real-time garbage collection
A hard real-time garbage collector which uses a write barrier to only coordinate collection work with modiications of pointers in data structures, therefore making coordination costs cheaper and more predictable, and which has most of the advantages of copying collection, without the disadvantage of having to actually copy the objects.
Conservative garbage collection on distributed shared memory systems
  • Weimin Yu, A. Cox
  • Computer Science
    Proceedings of 16th International Conference on Distributed Computing Systems
  • 1996
The design and implementation of a conservative garbage collection algorithm for distributed shared memory (DSM) applications that use weakly-typed languages like C or C++ is presented, and its performance is evaluated.
Customising Object Allocation
This work presents a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case.
Safe manual memory management
HeapSafe, a tool that uses reference counting to dynamically verify the soundness of manual memory management of C programs, is presented and it is found that garbage collection, although faster, had much higher space overhead, and occasionally caused a space-usage explosion that made the program unusable.
3. a Proposal for Garbage-collector-safe C Compilation Garbage Collection and C
It is proposed that C compilers provide a facility to suppress optimizations that are unsafe in the presence of conservative garbage collection, which can be added to an existing compiler at very minimal cost, provided the additional analysis is done in a machine-independent source-to-source prepass.
Memory Management in the PoSSo Solver
This work describes how the CMM has been exploited in the implementation of the Buchberger algorithm, by using a special heap for temporary objects created during polynomial reduction, which drastically reduces the overall cost of memory allocation in the algorithm.
The measured cost of copying garbage collection mechanisms
This study covers both low-level object representation and copying issues as well as the mechanisms needed to support more advanced techniques such as generational collection, large object spaces, and type segregated areas.


Comparative performance evaluation of garbage collection algorithms
It is shown that object-level, trace-driven simulation can facilitate evaluation of language runtime systems and reaches new conclusions about the relative performance of important garbage collection algorithms, including mark-and-sweep garbage collection, which shows comparable CPU performance and much better reference locality than the more widely used copying algorithms.
The Effect of Garbage Collection on Cache Performance
Results suggest that garbage collection algorithms will play an important part in improving cache performance as processor speeds increase and two-way set-associative caches are shown to reduce the miss rate in stop-and-copy algorithms often by a factor of two and sometimes by almost five over direct-mapped caches.
Garbage collection in a large LISP system
This paper discusses garbage collection techniques used in a high-performance Lisp implementation with a large virtual memory, the Symbolics 3600. Particular attention is paid to practical issues and
Garbage collection in an uncooperative environment
This approach greatly simplifies the implementation of languages supporting garbage collection and allows conventional compilers to be used with a garbage collector, either as the primary means of storage reclamation, or as a debugging tool.
A real-time garbage collector based on the lifetimes of objects
This work presents a garbage collection algorithm that makes storage for short-lived objects cheaper than storage for long-livedObjects, that operates in real time, increases locality of reference, for better virtual memory performance, and works well with multiple processors and a large address space.
Combining generational and conservative garbage collection: framework and implementations
A new framework for defining garbage collectors is presented, which generalizes the notion of younger/older to a partial order and can describe traditional generational and conservative techniques, and lends itself to combining different techniques in novel ways.
Fast fits--new methods for dynamic storage allocation
A cartesian tree can be used to manage a pool of storage so that typically the allocation or release of a variable-length area takes time O(logM), where M = number of discontiguous available blocks.
Simple generational garbage collection and fast allocation
  • A. Appel
  • Computer Science
    Softw. Pract. Exp.
  • 1989
A scheme for quick record allocation attacks this bottleneck because many garbage‐collected environments do not know when to ask the operating system for more memory, and a robust heuristic solves this problem.
Garbage Collection of Linked Data Structures
A concise and unified view of the numerous existing algorithms for performing garbage collection of linked data structures is presented. The emphasm is on garbage collection proper, rather than on
Efficient implementation of the first-fit strategy for dynamic storage allocation
An algorithm that efficiently implements the first-fit strategy for dynamic storage allocation, which is faster than many commonly used algorithms, especially when many small blocks are allocated, and has good worst-case behavior.