As Python programmers we’re used to program without taking care about allocating memory for our objects and later on freeing them, Python garbage collector takes care of this task automatically for us.
Garbage collection is one of the most challenging topics in computer science, there are a lot of research around the topic and different ways to tackle the problem.
Knowing how our language does this process give us a better understanding of underlying interpreter and allow us to know why problems like cycles can happen in CPython interpreters.
So, this talk aims to be and introduction to the topic and a walkaround through different approaches followed in CPython and PyPy: