2nd Edition

The Garbage Collection Handbook The Art of Automatic Memory Management

    609 Pages 1 Color & 77 B/W Illustrations
    by Chapman & Hall

    609 Pages 1 Color & 77 B/W Illustrations
    by Chapman & Hall

    Published in 1996, Richard Jones's Garbage Collection was a milestone in the area of automatic memory management. Its widely acclaimed successor, The Garbage Collection Handbook: The Art of Automatic Memory Management, captured the state of the field in 2012. Modern technology developments have made memory management more challenging, interesting and important than ever. This second edition updates the handbook, bringing together a wealth of knowledge gathered by automatic memory management researchers and developers over the past sixty 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 state-of-the-art parallel, incremental, concurrent and real-time garbage collection. Algorithms and concepts are often described with pseudocode and illustrations.

    Features of this edition

    • Provides a complete, up-to-date, and authoritative sequel to the 1996 and 2012 books
    • Offers thorough coverage of parallel, concurrent, and real-time garbage collection algorithms
    • Discusses in detail modern, high-performance commercial collectors
    • Explains some of the trickier aspects of garbage collection, including the interface to the run-time system
    • Over 90 more pages including new chapters on persistence and energy-aware garbage collection
    • Backed by a comprehensive online database of over 3,400 garbage collection-related publications

    The adoption of garbage collection by almost all 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.





    Mark-Sweep Garbage Collection

    Mark-Compact Garbage Collection

    Copying Garbage Collection

    Reference Counting

    Comparing Garbage Collectors


    Partitioning the Heap

    Generational Garbage Collection

    Other Partitioned Schemes

    Run-Time Interface

    Language-Specific Concerns

    Concurrency Preliminaries

    Parallel Garbage Collection

    Concurrent Garbage Collection

    Concurrent Mark-Sweep

    Concurrent Copying and Compaction

    Concurrent Reference Counting

    Real-Time Garbage Collection

    Energy-Aware Garbage Collection

    Persistence and Garbage Collection





    Richard Jones is Emeritus Professor of Computer Systems at the School of Computing, University of Kent, Canterbury. He received a BA in Mathematics from Oxford University in 1976. He spent a few years teaching before returning to higher education at the University of Kent, where he has remained ever since, receiving an MSc in Computer Science in 1989. In 1998, he co-founded the International Symposium on Memory Management, of which he was the inaugural Programme Chair. He has published numerous papers on garbage collection, heap visualisation and electronic publishing, and he regularly sits on the programme committees of leading international conferences. He was made an Honorary Fellow of the University of Glasgow in 2005 in recognition of his research and scholarship in dynamic memory management. He was named a Distinguished Scientist of the Association for Computing Machinery in 2006, and in 2014 made a Fellow of the British Computer Society, a Fellow of the RSA and a member of AITO. He is married, with three children, and in his spare time he cycles and sails, including racing a Dart 18 catamaran.

    Antony Hosking is Professor in the School of Computing at the Australian National University. He received a BSc in Mathematical Sciences from the University of Adelaide, Australia, in 1985, and an MSc in Computer Science from the University of Waikato, New Zealand, in 1987. He continued his graduate studies at the University of Massachusetts Amherst, receiving a PhD in Computer Science in 1995. His work is in the area of programming language design and implementation, with specific interests in database and persistent programming languages, object-oriented database systems, dynamic memory management, compiler optimisations, and architectural support for programming languages and applications. He was named a Distinguished Scientist of the Association for Computing Machinery in 2012, a member of AITO in 2013, and is a Member of the Institute of Electrical and Electronics Engineers. He regularly serves on programme and steering committees of major conferences, mostly focused on programming language design and implementation. He is married, with five children. When the opportunity arises, he most enjoys sitting somewhere behind the bowler’s arm on the first day of any Test match at the Adelaide Oval.

    Eliot Moss is Professor Emeritus in the Manning College of Information and Computer Sciences at the University of Massachusetts Amherst. He received a BSEE in 1975, MSEE in 1978, and PhD in Computer Science in 1981, all from the Massachusetts Institute of Technology, Cambridge. After four years of military service, he joined the Computer Science faculty at the University of Massachusetts Amherst. He works in the area of programming languages and their implementation, and has built garbage collectors since 1978. In addition to his research on automatic memory management, he is known for his work on persistent programming languages, virtual machine implementation, transactional programming and transactional memory. He worked with IBM researchers to license the JikesRVM Java virtual machine for academic research, which eventually led to its release as an open source project. In 2007 he was named a Fellow of the Association for Computing Machinery and in 2009 a Fellow of the Institute of Electrical and Electronics Engineers. In 2012 he was co-recipient of the Edsger W. Dijkstra Prize in Distributed Computing for work on transactional memory. He served for four years as Secretary of the Association for Computing Machinery’s Special Interest Group on Programming Languages, and served on many programme and steering committees of the significant venues related to his areas of research. Ordained a priest of the Episcopal Church in 2005, he leads a congregation in addition to his full-time academic position. He is married, with two children. He enjoys listening to recorded books, movie-going and the company of cats, and has been known to play the harp.