gc --- 控制垃圾回收器¶
本模块提供了堆垃圾回收器的接口:启用或禁用自动回收、强制立即回收、查询已分配和空闲的堆内存量,以及调整触发回收的分配阈值。
函数¶
- gc.disable() None¶
禁用自动垃圾回收。堆内存仍可分配,并且仍可使用
gc.collect()手动发起垃圾回收。
- gc.threshold(amount: int | None = None) int | None¶
设置或查询额外的 GC 分配阈值。通常,仅当新的分配无法满足时(即在内存不足(OOM)的情况下)才会触发回收。如果调用此函数,则除 OOM 之外,每当累计分配了 amount 字节(自上次累计分配了这么多字节以来)后也会触发一次回收。amount 通常被指定为小于完整堆大小的值,目的是在堆耗尽之前更早地触发回收,并期望早期回收能防止过度的内存碎片化。这是一种启发式措施,其效果以及 amount 参数的最优值会因应用而异。
不带参数调用该函数将返回阈值的当前值。值为 -1 表示禁用分配阈值。
与 CPython 的差异
此函数是 MicroPython 的扩展。CPython 有一个类似的函数
set_threshold(),但由于 GC 实现不同,其签名和语义也不同。