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