gc -- ガベージコレクションの制御

このモジュールは、該当する :term:`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: Out-Of-Memory)状態でのみトリガーされます。この関数が呼び出された場合は、OOMに加えて、 amount バイトが(以前に割り当てられているものと合計で)割り当てられた後にガベージコレクションがトリガーされます量は通常、ヒープが使い尽くされたときよりも早くガベージコレクションをトリガーすることが目的であり、全ヒープサイズよりも小さく指定します。また、早めのガベージコレクションによって過剰なメモリー断片化が防止されることを期待しています。これは、ヒューリスティックな尺度であり、その効果はアプリケーションごとに異なり、 amount パラメータの最適値も異なります。

引数なしで関数を呼び出すと、しきい値の現在の値が返されます。値が -1 の場合は無効な割り当てしきい値であることを意味します。

CPython との違い

この関数は、MicroPython の拡張機能です。CPython も同様の機能 set_threshold() を持っていますが、GCの実装が異なるため、シグネチャとセマンティクスが異なります。