gc – 控制垃圾收集器

该模块实现了相应 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 实现,其签名和语义是不同的。