gc --- ガベージコレクターの制御¶
このモジュールは、ヒープガベージコレクターへのインターフェースを提供します。自動コレクションの有効化または無効化、即時コレクションの強制実行、割り当て済みおよび空きのヒープメモリ量の照会、コレクションをトリガーする割り当てしきい値の調整を行います。
関数¶
- gc.disable() None¶
自動ガベージコレクションを無効にします。ヒープメモリは引き続き割り当てることができ、
gc.collect()を使用してガベージコレクションを手動で開始することもできます。
- 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 の実装が異なるため、そのシグネチャとセマンティクスは異なります。