gc — řízení garbage collectoru¶
Tento modul poskytuje rozhraní ke garbage collectoru haldy: zapínání nebo vypínání automatického sběru, vynucení okamžitého sběru, dotazování na množství alokované a volné paměti haldy a ladění alokačního prahu, který sběr spouští.
Funkce¶
- gc.disable() None¶
Vypne automatický sběr odpadu (garbage collection). Paměť haldy lze i nadále alokovat a sběr odpadu lze stále spustit ručně pomocí
gc.collect().
- gc.mem_alloc() int¶
Vrátí počet bajtů RAM haldy, které jsou alokovány kódem v Pythonu.
Rozdíl oproti CPythonu
Tato funkce je rozšířením MicroPythonu.
- gc.mem_free() int¶
Vrátí počet bajtů RAM haldy, které jsou k dispozici pro alokaci kódem v Pythonu, nebo -1, pokud toto množství není známo.
Rozdíl oproti CPythonu
Tato funkce je rozšířením MicroPythonu.
- gc.threshold(amount: int | None = None) int | None¶
Nastaví nebo zjistí dodatečný alokační práh GC. Za normálních okolností je sběr spuštěn pouze tehdy, když nelze uspokojit novou alokaci, tj. při stavu nedostatku paměti (OOM). Je-li tato funkce zavolána, bude kromě OOM spuštěn sběr také pokaždé po alokování amount bajtů (celkem, od posledního okamžiku, kdy bylo takové množství bajtů alokováno). amount se obvykle uvádí jako menší než plná velikost haldy, se záměrem spustit sběr dříve, než se halda vyčerpá, a v naději, že časný sběr zabrání nadměrné fragmentaci paměti. Jedná se o heuristické opatření, jehož účinek se bude lišit aplikaci od aplikace, stejně jako optimální hodnota parametru amount.
Volání funkce bez argumentu vrátí aktuální hodnotu prahu. Hodnota -1 znamená vypnutý alokační práh.
Rozdíl oproti CPythonu
Tato funkce je rozšířením MicroPythonu. CPython má podobnou funkci –
set_threshold(), ale kvůli odlišným implementacím GC se její signatura a sémantika liší.