The Garbage Collection Handbook

The Garbage Collection Handbook: The Art of Automatic Memory Management

Series:
Published:
Content:
Author(s):
Free Standard Shipping

Purchasing Options

Hardback
$87.95
ISBN 9781420082791
Cat# C2795
Add to cart
 

Features

  • Provides a complete, up-to-date, and authoritative sequel to the 1996 book
  • Offers thorough coverage of parallel, concurrent, and real-time garbage collection algorithms
  • Explains some of the tricky aspects of garbage collection, including the interface to the run-time system
  • Backed by a comprehensive online database of over 2,500 garbage collection-related publications

Summary

Published in 1996, Richard Jones’s Garbage Collection was a milestone in the area of automatic memory management. The field has grown considerably since then, sparking a need for an updated look at the latest state-of-the-art developments. The Garbage Collection Handbook: The Art of Automatic Memory Management brings together a wealth of knowledge gathered by automatic memory management researchers and developers over the past fifty years. The authors compare the most important approaches and state-of-the-art techniques in a single, accessible framework.

The book addresses new challenges to garbage collection made by recent advances in hardware and software. It explores the consequences of these changes for designers and implementers of high performance garbage collectors. Along with simple and traditional algorithms, the book covers parallel, incremental, concurrent, and real-time garbage collection. Algorithms and concepts are often described with pseudocode and illustrations.

The nearly universal adoption of garbage collection by modern programming languages makes a thorough understanding of this topic essential for any programmer. This authoritative handbook gives expert insight on how different collectors work as well as the various issues currently facing garbage collectors. Armed with this knowledge, programmers can confidently select and configure the many choices of garbage collectors.

Web Resource
The book’s online bibliographic database at www.gchandbook.org includes over 2,500 garbage collection-related publications. Continually updated, it contains abstracts for some entries and URLs or DOIs for most of the electronically available ones. The database can be searched online or downloaded as BibTeX, PostScript, or PDF.

Table of Contents

Introduction
Explicit deallocation
Automatic dynamic memory management
Comparing garbage collection algorithms
A performance disadvantage?
Experimental methodology
Terminology and notation

Mark-Sweep Garbage Collection
The mark-sweep algorithm
The tricolor abstraction
Improving mark-sweep
Bitmap marking
Lazy sweeping
Cache misses in the marking loop
Issues to consider

Mark-Compact Garbage Collection
Two-finger compaction
The Lisp 2 algorithm
Threaded compaction
One-pass algorithms
Issues to consider

Copying Garbage Collection
Semispace copying collection
Traversal order and locality
Issues to consider

Reference Counting
Advantages and disadvantages of reference counting
Improving efficiency
Deferred reference counting
Coalesced reference counting
Cyclic reference counting
Limited-field reference counting
Issues to consider

Comparing Garbage Collectors
Throughput
Pause time
Space
Implementation
Adaptive systems
A unified theory of garbage collection

Allocation
Sequential allocation
Free-list allocation
Fragmentation
Segregated-fits allocation
Combining segregated-fits with first-, best-, and next-fit
Additional considerations
Allocation in concurrent systems
Issues to consider

Partitioning the Heap
Terminology
Why to partition
How to partition
When to partition

Generational Garbage Collection
Example
Measuring time
Generational hypotheses
Generations and heap layout
Multiple generations
Age recording
Adapting to program behavior
Inter-generational pointers
Space management
Older-first garbage collection
Beltway
Analytic support for generational collection
Issues to consider
Abstract generational garbage collection

Other Partitioned Schemes
Large object spaces
Topological collectors
Hybrid mark-sweep, copying collectors
Bookmarking garbage collection
Ulterior reference counting
Issues to consider

Run-Time Interface
Interface to allocation
Finding pointers
Object tables
References from external code
Stack barriers
GC safe points and mutator suspension
Garbage collecting code
Read- and write-barriers
Managing address space
Applications of virtual memory page protection
Choosing heap size
Issues to consider

Language-Specific Concerns
Finalization
Weak references
Issues to consider

Concurrency Preliminaries
Hardware
Hardware memory consistency models
Hardware primitives
Progress guarantees
Notation used for concurrent algorithms
Mutual exclusion
Work sharing and termination detection
Concurrent data structures
Transactional memory
Issues to consider

Parallel Garbage Collection
Is there sufficient work to parallelize?
Load balancing
Synchronization
Taxonomy
Parallel marking
Parallel copying
Parallel sweeping
Parallel compaction
Issues to consider

Concurrent Garbage Collection
Correctness of concurrent collection
Barrier techniques for concurrent collection
Issues to consider

Concurrent Mark-Sweep
Initialization
Termination
Allocation
Concurrent marking and sweeping
On-the-fly marking
Abstract concurrent collection
Issues to consider

Concurrent Copying and Compaction
Mostly concurrent copying: Baker’s algorithm
Brooks’ indirection barrier
Self-erasing read barriers
Replication copying
Multi-version copying
Sapphire
Concurrent compaction
Issues to consider

Concurrent Reference Counting
Simple reference counting revisited
Buffered reference counting
Concurrent, cyclic reference counting
Taking a snapshot of the heap
Sliding views reference counting
Issues to consider

Real-Time Garbage Collection
Real-time systems
Scheduling real-time collection
Work-based real-time collection
Slack-based real-time collection
Time-based real-time collection: Metronome
Combining scheduling approaches: Tax-and-Spend
Controlling fragmentation
Issues to consider

Glossary

Bibliography

Index

Author Bio(s)

Editorial Reviews

The Garbage Collection Handbook is the most up-to-date, detailed, and exhaustive collation and description of the current state of the art of Garbage Collection and Automatic Memory Management available today. It is an imperative reference book for anyone working in the field, and I would consider it the textbook of reference covering GC 101 thru GC 530 course levels, if such courses were given at universities worldwide. As CTO of Azul Systems and co-creator of multiple modern concurrent collectors, Richard Jones’ previous Garbage Collection book was indispensable to my work over the years. The Garbage Collection Handbook has immediately taken its place. Each of our GC engineers has a copy on their desk.
—Gil Tene, Chief Technical Officer and co-founder of Azul Systems

In a field replete with ephemera, this book, just like its predecessor, stands as a monumental work that will last for decades.
—Dr. Mario Wolczko, Research Director, Oracle Labs

Recommended For You

 
 
Textbooks
Other CRC Press Sites
Featured Authors
STAY CONNECTED
Facebook Page for CRC Press Twitter Page for CRC Press You Tube Channel for CRC Press LinkedIn Page for CRC Press Google Plus Page for CRC Press
Sign Up for Email Alerts
© 2014 Taylor & Francis Group, LLC. All Rights Reserved. Privacy Policy | Cookie Use | Shipping Policy | Contact Us