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 の実装が異なるため、そのシグネチャとセマンティクスは異なります。