Python 垃圾收集器文档

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

我感兴趣的是在哪一步做了什么。这3个集合中有哪些对象?在每个步骤中删除哪些类型的对象?用什么算法来寻找参考周期?

背景: 我正在实现一些必须在少量时间内完成的搜索。当垃圾收集器开始收集最老的一代时,它比其他情况下“慢得多”。它花费的时间比预期的搜索时间还要多。我正在寻找如何预测它什么时候会收集最古老的一代,以及需要多长时间。

它很容易预测什么时候将收集与 get_count()get_threshold()最老的一代。这也可以用 set_threshold()操纵。但是我不认为强制制作 collect()或者等待预定的收集会更好。

80688 次浏览

没有关于 Python 如何执行垃圾收集的权威资源(除了源代码本身) ,但是这3个链接应该会给你一个非常好的想法。

更新

消息来源其实很有帮助。你能从中得到多少,取决于你对 C 语言的理解程度,但是评论实际上是非常有帮助的。跳到 collect()功能,注释很好地解释了这个过程(尽管是非常技术性的术语)。