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 實作不同,其簽章與語意有所差異。