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 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.
Richard is Professor of Computer Systems in the School of Computing at the University of Kent, Canterbury. He received a B.A. in Mathematics from Oxford University in 1976. He spent a few years teaching at school and college before returning to higher education at the University of Kent, where he has remained ever since, receiving an M.Sc. in Computer Science in 1989. In 1998 Richard co-founded the ACM/SIGPLAN 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 is a member of the Editorial Board of the journal Software Practice and Experience (Wiley). He was made an Honorary Fellow of the University of Glasgow in 2005 in recognition of his research and scholarship in dynamic memory management, and a Distinguished Scientist of the ACM in 2006.
Absolutely brilliant book on the subject of automatic memory management. Kudos to the authors for such a complex and thourough gathering of so huge material on the subject. Well-thought-out structure of the book makes it easy to learn even it so comprehensive. You will learn here probably every possible variant of the garbage collector, from basic concepts to some implementation details (in pseudo-doce). It puts a lot emphasis on theory, only mentioning specific implementations (i.e. JVM).
Definitely a must read for all interested in the subject. But beware - this is a book with academic-like nature. It requires a lot of attention and concentration from the reader. Very, very useful for people implementing the GC. Or people who want to understand the subject very thoroughly. The only drawback? Too little of references to outside world different than GC JVM - especially CLR. But still, this is mostly academic book so commercial implementation details are a little out of scope.
Note that the second edition isn't just a revision of the first edition. It dropped some of the more basic information in favor of including new content, and explicitly says to look at the first edition for the details of some of the more basic algorithms. So you might want to get both editions.
Given the complexity of the topic, the book is well structured and written. As such it does help to understand the approaches and their impact. Definitely recommend to anyone interested in knowing more about what is under the hood of languages such as Java.
This book provides the best broad overview of garbage collection, while also providing enough detail that readers will be able follow and analyse more detailed literature on specific GC algorithms. Jones also provides many references, along with those on his website for further reading.
Definitely worth-while if you're planning to implement a garbage collector.