Disclaimer This post provides an intentionally watered-down overview of mark sweep garbage collection algorithm and the tradeoffs involved around it. A lot of the gory implementation details aren’t mentioned. Recap At a high level, an automatic memory management system has two key responsibilities: Allocate space for new objects Reclaim space from dead objects The sole responsibility of a garbage collector is to reclaim the space used by every object that will no longer be used by any of the execution paths in the program.
TL;DR Stop reading if you’ve a computer with infinite memory. In this series of blog posts, I’ll go over some well known garbage collection techniques and analyze the tradeoffs involved from the system design perspective. All the ideas are taken from existing literature and I am not making any claims of original work. Garbage collection is a subject that is very close to my heart, and by writing about it I hope to improve my own understanding of modern language runtimes.