Who Takes Out Your Trash

No matter how clean your code, every program you run creates garbage. Luckily, most of us don’t have to think about taking out our own trash. Garbage collectors simply take care of business, but that doesn’t mean we have to be mystified by how they do their jobs.


It is not in fact magic that takes care of the garbage, and this talk will show you how it’s done. First, we’ll explore how two of the most common garbage collection algorithms, reference counting and tracing, figure out what is ready to be collected. Next, we’ll see how we could get the garbage truck out of the way faster by using a generational algorithm, and finally we’ll have a brief look at how Erlang/Elixir’s garbage collection works.

This friendly introduction to taking out the trash gives an overview of important aspects of garbage collection algorithms. It is specifically meant to be accessible to developers of all levels and you’ll walk away with an understanding of and appreciation for all the hard work that goes on behind the scenes.