Digging through the garbage

The BEAM was designed to run on 1980's hardware and never crash. How does it manage to run for so long on machines with such little memory and still have such good soft-real time performance? This talk will explore the answer by looking at the basics of how the BEAM handles memory in processes and a bit about its very special garbage collection algorithm.


Beginners will learn a few new concepts, like what a generational garbage collector is, what a heap is, and what a stack is. For more advanced developers, we're going to use those basics to show things like how you can monitor your application's memory usage through hooking into the garbage collection events emitted by the BEAM tracing module, how this might affect optimizing your application if you're in a low-memory environment (like IOT devices), and some more resources for further learning.