gpt4 book ai didi

python - 为什么python对gc同时使用引用计数和mark-and-sweep?

转载 作者:IT老高 更新时间:2023-10-28 20:45:50 26 4
gpt4 key购买 nike

我的问题是为什么 python 对 gc 使用引用计数和标记和清除?为什么不只是标记和清除?

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

有什么想法吗?

非常感谢。

最佳答案

Python(该语言)没有说明它使用哪种形式的垃圾收集。主要实现(通常称为 CPython)就像您描述的那样。其他版本(例如 Jython 或 IronPython)使用纯粹的垃圾收集系统。

是的,使用引用计数的早期集合有一个好处,但 CPython 使用它的主要原因是历史性的。最初没有针对循环对象的垃圾收集,因此循环导致内存泄漏。 C API 和数据结构主要基于引用计数原则。添加真正的垃圾回收后,无法破坏现有的二进制 API 和所有依赖它们的库,因此必须保留引用计数。

关于python - 为什么python对gc同时使用引用计数和mark-and-sweep?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9062209/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com