gc --- 控制垃圾回收器

本模块提供了堆垃圾回收器的接口:启用或禁用自动回收、强制立即回收、查询已分配和空闲的堆内存量,以及调整触发回收的分配阈值。

函数

gc.enable() None

启用自动垃圾回收。

gc.disable() None

禁用自动垃圾回收。堆内存仍可分配,并且仍可使用 gc.collect() 手动发起垃圾回收。

gc.collect() None

运行一次垃圾回收。

gc.mem_alloc() int

返回由 Python 代码分配的堆 RAM 字节数。

与 CPython 的差异

此函数是 MicroPython 的扩展。

gc.mem_free() int

返回可供 Python 代码分配的堆 RAM 字节数,如果该数量未知则返回 -1。

与 CPython 的差异

此函数是 MicroPython 的扩展。

gc.threshold(amount: int | None = None) int | None

设置或查询额外的 GC 分配阈值。通常,仅当新的分配无法满足时(即在内存不足(OOM)的情况下)才会触发回收。如果调用此函数,则除 OOM 之外,每当累计分配了 amount 字节(自上次累计分配了这么多字节以来)后也会触发一次回收。amount 通常被指定为小于完整堆大小的值,目的是在堆耗尽之前更早地触发回收,并期望早期回收能防止过度的内存碎片化。这是一种启发式措施,其效果以及 amount 参数的最优值会因应用而异。

不带参数调用该函数将返回阈值的当前值。值为 -1 表示禁用分配阈值。

与 CPython 的差异

此函数是 MicroPython 的扩展。CPython 有一个类似的函数 set_threshold(),但由于 GC 实现不同,其签名和语义也不同。