Python垃圾回收器文档
我正在寻找详细描述python垃圾收集如何工作的文档。
我感兴趣在哪一步做了什么。 这三个集合中有哪些对象? 每一步中删除了哪些对象? 什么algorithm用于参考循环查找?
背景:我正在实施一些search,必须在less量时间内完成。 当垃圾收集器开始收集最老的一代时,它比其他情况下“慢得多”。 它花费的时间比预期的search更多。 我正在研究如何预测何时收集最老的一代,需要多长时间。
使用get_count()
和get_threshold()
来预测何时收集最早的一代是很容易的。 这也可以用set_threshold()
来操纵。 但是我不明白,通过强制collect()
或者等待计划收集是更好的办法。
- Python垃圾收集
-
gc
模块文档 - 关于Python的垃圾收集的详细信息
关于Python如何进行垃圾回收(除了源代码本身)还没有明确的资源,但这3个链接应该给你一个很好的主意。
更新
来源实际上很有帮助。 你从中得到多less取决于你阅读C的程度,但是这些评论其实非常有帮助。 跳到collect()
函数 https://github.com/python/cpython/blob/master/Modules/gcmodule.c和评论解释过程(尽pipe在技术上非常好)。;