Python垃圾收集器文档

Ant*_*nte 130 python garbage-collection

我正在寻找详细描述python垃圾收集如何工作的文档.

我很感兴趣在哪一步做了什么.这三个系列中有哪些对象?每个步骤中删除了哪些对象?什么算法用于参考循环发现?

背景:我正在实施一些必须在很短的时间内完成的搜索.当垃圾收集器开始收集最老的一代时,它比其他情况"慢得多".花了比搜索更多的时间.我正在寻找如何预测它将收集最老一代的时间以及需要多长时间.

这是很容易预测它什么时候会收集最古老的一代与get_count()get_threshold().这也可以用set_threshold().但是,我不认为collect()通过武力或等待预定的收集更好地决定是否更好.

Raf*_*ler 125

关于Python如何进行垃圾收集(源代码本身除外)没有明确的资源,但这3个链接应该给你一个很好的主意.

更新

来源实际上非常有帮助.你得到多少取决于你读C的程度,但评论实际上非常有帮助.省略该collect()功能,评论很好地解释了这个过程(虽然用非常技术的术语).

  • CPython不再使用Subversion.他们转而使用hg.python.org上的Mercurial.由于我无法弄清楚如何链接到该网站上当前版本的文件,我将链接到[非官方的GitHub镜像](https://github.com/akheron/cpython/blob/master/Modules /gcmodule.c)而不是. (3认同)