gc
– 控制垃圾收集器¶
This module implements a subset of the corresponding CPython module,
as described below. For more information, refer to the original
CPython documentation: gc
。
函数¶
- gc.enable()¶
启用自动垃圾收集。
- gc.disable()¶
禁用自动垃圾收集。堆内存仍然可以被分配,垃圾收集仍然可以通过使用
gc.collect()
手动启动。
- gc.collect()¶
运行一次垃圾收集。
- gc.mem_alloc()¶
返回由Python代码分配的堆RAM的字节数。
与CPython的不同之处
此函数是MicroPython扩展。
- gc.mem_free()¶
返回可供Python代码分配的堆RAM的字节数,如果此数量未知,则返回-1。
与CPython的不同之处
此函数是MicroPython扩展。
- gc.threshold([amount])¶
设置或查询额外的GC分配阈值。通常情况下,只有在新的分配无法满足时才会触发收集,即在内存不足(OOM)条件下。如果调用此函数,除了OOM条件外,每次分配 amount 字节(总的来说,因为上次已经分配了这么多字节)后都会触发一次收集。amount 通常指定为小于整个堆大小,意图是在堆耗尽之前触发收集,并希望提前收集将防止过度的内存碎片化。这是一种启发式措施,其效果将因应用程序而异,以及 amount 参数的最佳值也会有所不同。
不带参数调用此函数将返回阈值的当前值。-1的值意味着禁用了分配阈值。
与CPython的不同之处
此函数是MicroPython扩展。CPython有一个类似的函数 -
set_threshold()
,但由于GC实现不同,其签名和语义有所不同。