gc – 控制垃圾收集器

警告

虽然这个基于 MicroPython 的库可能可用于某些 CircuitPython 版本,但它不受支持,并且其功能在未来可能会发生重大变化。随着 CircuitPython 的不断发展,它可能会更改以更紧密地符合相应的标准 Python 库。如果您依赖它当前提供的任何非标准功能,您以后可能需要更改您的代码。

该模块实现了相应 CPython 模块的 一个子集,如下所述。有关更多信息,请参阅原始 CPython 文档: gc.

职能

gc.enable()

启用自动垃圾收集。

gc.disable()

禁用自动垃圾收集。仍然可以分配堆内存,并且仍然可以使用gc.collect().

gc.collect()

运行垃圾回收。

gc.mem_alloc()

返回分配的堆 RAM 的字节数。

与 CPython 的区别

这个函数是一个 MicroPython 扩展。

gc.mem_free()

返回可用堆 RAM 的字节数,如果此数量未知,则返回 -1。

与 CPython 的区别

这个函数是一个 MicroPython 扩展。

gc.threshold([amount])

设置或查询额外的 GC 分配阈值。通常,仅当无法满足新分配时才会触发集合,即内存不足 (OOM) 条件。如果调用此函数,除了 OOM 之外,每次分配了数量字节后都会触发一个集合(总共,自上次以来已经分配了这样数量的字节)。数量通常被指定为小于完整的堆大小,目的是在堆耗尽时更早地触发收集,并希望早期收集将防止过多的内存碎片。这是一种启发式度量,其效果会因应用程序而异,以及数量参数的最佳值。

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

与 CPython 的区别

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