python - gc.collect() 函数究竟做了什么?
问题描述
我无法理解 python 函数到底是做什么的gc.collect()
。该函数是否仅收集那些可收集的对象,以便在达到之后释放空间gc.threshold
?还是gc.collect()
收集对象并自动摆脱它收集的任何东西,以便在执行代码后立即释放空间?
解决方案
这取决于!如果在没有参数或generation=2
作为参数的情况下调用,它将释放可收集的对象。如果调用generation=1
它不会清除空闲列表。
从文档中:
没有参数,运行一个完整的集合。可选参数 generation 可以是一个整数,指定要收集哪一代(从 0 到 2)。
ValueError
如果代号无效,则引发A。返回找到的不可达对象的数量。每当运行完整集合或最高代 (2) 的集合时,都会清除为许多内置类型维护的空闲列表。由于特定的实现,特别是浮动,并非某些空闲列表中的所有项目都可能被释放。
推荐阅读
- python - 避免 Zipfile.write 中的日期更改
- vue.js - 如何在 Vue3 中的任何组件中创建全局模式以在需要时显示消息?
- c# - 具有自有实体并在项目升级到 EF Core 3.1 时被定义为自有实体中断的类型
- c# - 如何从 ListBoxFor 中选择多个项目并传递给控制器 Post 方法
- python - 我可以使用什么 sqlite3 查询“日期范围”条件?
- testing - TestCafe 可以通过多个页面遵循一个序列吗?
- node.js - 无法向没有活动卡的客户收费 - Stripe Payment
- swift - 多张图片+参数的多部分表单数据上传(Alamofire 5.2)
- ios - iOS 13 中的 Twitter 分享
- haskell - 由于缩进不正确或括号不匹配导致的解析错误无法解决