关于Python垃圾回收机制的问题
我在某度搜到的一些博客有讲到,Python底层有分代回收的机制,于是我便记下了。可我前些时间面试的时候,说了一下这方面的东西,面试官却反驳我说这是JAVA的回收机制,搞得我半信半疑。现在网络环境确实有点让人拎不清楚,所以想请大佬们给个答复,Python底层是否也有分代回收的机制?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
线索
https://docs.python.org/3/lib...
https://devguide.python.org/g...
官方文档里没有明确提到关键词
Generational GC
一词,但从gc
模块和开发指导等各种地方都有提到Generation
的概念。从第二个链接的内容
可以比较明确地看出是分代 GC 的思想。
再深入 Python 源码,在 Modules/gcmodule.c 的开头几行注释里就提到了这个文档
http://www.arctrix.com/nas/py...
文档发布的日期是 2000 年,早期邮件列表内容没有出现在 python.org 官网的文档里,很正常。从源码的注释里还是能找到相关的讨论历史的。
总结
Q: Python 有分代 GC 吗?
A: 有,很早就有,和引用计数共存。见上文链接。
Q: Python 的分代 GC 和 Java 的分代 GC 是一回事吗?
A: 指导思想类似,但不能当做一回事。