首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么python在gc中同时使用引用计数和标记和清除?

为什么python在gc中同时使用引用计数和标记和清除?
EN

Stack Overflow用户
提问于 2012-01-30 18:08:01
回答 1查看 6.7K关注 0票数 23

我的问题是,为什么python在gc中同时使用引用计数和标记和清除?为什么不只是标记和清除呢?

我最初的猜测是,使用引用计数可以很容易地删除非循环引用的对象,这可能会在一定程度上加快标记和清除速度,并立即获得内存。不知道我的猜测是否正确?

有什么想法吗?

非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 20:22:03

Python (语言)没有说明它使用的是哪种形式的垃圾收集。主实现(通常称为CPython)按照您所描述的那样工作。其他版本,如Jython或IronPython,使用纯粹的垃圾收集系统。

是的,早期收集引用计数是有好处的,但CPython使用它的主要原因是历史原因。最初,循环对象没有垃圾回收,因此循环导致内存泄漏。APIs和数据结构在很大程度上是基于引用计数的原则。当添加真正的垃圾收集时,不能选择破坏现有的二进制API和所有依赖于它们的库,因此必须保留引用计数。

票数 21
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9062209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档