我正在寻找详细描述 python 垃圾收集如何工作的文档。
我对在哪一步做了什么感兴趣。这 3 个集合中有哪些对象?每个步骤中删除了哪些类型的对象?引用循环查找使用什么算法?
背景:我正在实现一些必须在短时间内完成的搜索。当垃圾收集器开始收集最老的一代时,它比其他情况“慢得多”。它花费的时间超过了搜索的预期时间。我正在寻找如何预测它何时会收集最老一代以及需要多长时间。
使用 get_count()
和 get_threshold()
很容易预测它何时会收集最老一代。这也可以使用 set_threshold()
进行操作。但是我看不出是通过强制进行 collect()
还是等待预定的收集更好。
最佳答案
没有关于 Python 如何进行垃圾收集的明确资源(除了源代码本身),但是这 3 个链接应该会给你一个很好的想法。
更新
该来源实际上很有帮助。你能从中得到多少取决于你对 C 的阅读程度,但这些评论实际上非常有帮助。跳至 collect()
function并且评论很好地解释了这个过程(尽管用非常技术性的术语)。
关于Python 垃圾收集器文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4484167/