Python垃圾收集器文档
我正在寻找详细描述python垃圾收集如何工作的文档。
我感兴趣在哪一步完成了什么。 这3个集合中有哪些对象? 每一步中删除了哪些对象? 什么算法用于参考循环查找?
背景:我正在实施一些搜索,必须在少量时间内完成。 当垃圾收集器开始收集最老的一代时,它比其他情况下慢得多。 它花费的时间比预期用于搜索的时间多。 我正在研究如何预测何时会收集最老的一代以及需要多长时间。
通过get_count()
和get_threshold()
可以很容易地预测何时会收集最早的一代。 这也可以用set_threshold()
来操纵。 但我看不出有多容易做出决定是否更好地通过强制collect()
或等待计划收集。
gc
模块文档 关于Python如何进行垃圾回收(除了源代码本身)没有确切的资源,但这3个链接应该给你一个很好的主意。
更新
来源实际上非常有帮助。 你从中得到多少取决于你阅读C的程度,但评论其实非常有帮助。 跳转到https://github.com/python/cpython/blob/master/Modules/gcmodule.c中的collect()
函数,这些注释很好地解释了这个过程(虽然用非常专业的术语)。
上一篇: Python garbage collector documentation
下一篇: How does Java Garbage Collection work with Circular References?