Book description
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.
E-book
This edition enhances the print version with copious clickable links to algorithms, figures, original papers and definitions of technical terms. In addition, each index entry links back to where it was mentioned in the text, and each entry in the bibliography includes links back to where it was cited.
Table of contents
- Cover
- Half Title
- Title Page
- Copyright Page
- Dedication
- Table of Contents
- List of Algorithms
- List of Figures
- List of Tables
- Preface
- Acknowledgements
- Authors
- 1 Introduction
- 2 Mark-sweep garbage collection
- 3 Mark-compact garbage collection
- 4 Copying garbage collection
- 5 Reference counting
- 6 Comparing garbage collectors
- 7 Allocation
- 8 Partitioning the heap
-
9 Generational garbage collection
- 9.1 Example
- 9.2 Measuring time
- 9.3 Generational hypotheses
- 9.4 Generations and heap layout
- 9.5 Multiple generations
- 9.6 Age recording
- 9.7 Adapting to program behaviour
- 9.8 Inter-generational pointers
- 9.9 Space management
- 9.10 Older-first garbage collection
- 9.11 Beltway
- 9.12 Analytic support for generational collection
- 9.13 Issues to consider
- 9.14 Abstract generational garbage collection
- 10 Other partitioned schemes
-
11 Run-time interface
- 11.1 Interface to allocation
- 11.2 Finding pointers
- 11.3 Object tables
- 11.4 References from external code
- 11.5 Stack barriers
- 11.6 GC-safe points and mutator suspension
- 11.7 Garbage collecting code
- 11.8 Read and write barriers
- 11.9 Managing address space
- 11.10 Applications of virtual memory page protection
- 11.11 Choosing heap size
- 11.12 Issues to consider
-
12 Language-specific concerns
-
12.1 Finalisation
- When do finalisers run?
- Which thread runs a finaliser?
- Can finalisers run concurrently with each other?
- Can finalisers access the object that became unreachable?
- When are finalised objects reclaimed?
- What happens if there is an error in a finaliser?
- Is there any guaranteed order to finalisation?
- The finalisation race problem
- Finalisers and locks
- Finalisation in particular languages
- For further study
- 12.2 Weak references
- 12.3 Issues to consider
-
12.1 Finalisation
- 13 Concurrency preliminaries
- 14 Parallel garbage collection
- 15 Concurrent garbage collection
- 16 Concurrent mark-sweep
- 17 Concurrent copying & compaction
- 18 Concurrent reference counting
-
19 Real-time garbage collection
- 19.1 Real-time systems
- 19.2 Scheduling real-time collection
- 19.3 Work-based real-time collection
- 19.4 Slack-based real-time collection
- 19.5 Time-based real-time collection: Metronome
- 19.6 Combining scheduling approaches: Tax-and-Spend
-
19.7 Controlling fragmentation
- Incremental compaction in Metronome
- Incremental replication on uniprocessors
- Stopless: lock-free garbage collection
- Staccato: best-effort compaction with mutator wait-freedom
- Chicken: best-effort compaction with mutator wait-freedom for x86
- Clover: guaranteed compaction with probabilistic mutator lock-freedom
- Stopless versus Chicken versus Clover
- Fragmented allocation
- 19.8 Issues to consider
- Glossary
- Bibliography
- Index
Product information
- Title: The Garbage Collection Handbook
- Author(s):
- Release date: September 2016
- Publisher(s): Chapman and Hall/CRC
- ISBN: 9781315388007
You might also like
book
Release It!, 2nd Edition
A single dramatic software failure can cost a company millions of dollars - but can be …
video
Garbage Collection Algorithms
Memory leaks and dangling pointers are the main issues of manual memory management. If you delete …
book
The Definitive ANTLR 4 Reference, 2nd Edition
Programmers run into parsing problems all the time. Whether it's a data format like JSON, a …
book
Effective C
The world runs on code written in the C programming language, yet most schools begin the …