gc — controlul colectorului de gunoi#

Acest modul oferă o interfață către colectorul de gunoi al heap-ului: activarea sau dezactivarea colectării automate, forțarea unei colectări imediate, interogarea cantității de memorie heap alocată și liberă și ajustarea pragului de alocare care declanșează colectarea.

Funcții#

gc.enable() None#

Activează colectarea automată a gunoiului.

gc.disable() None#

Dezactivează colectarea automată a gunoiului. Memoria heap poate fi în continuare alocată, iar colectarea gunoiului poate fi în continuare inițiată manual folosind gc.collect().

gc.collect() None#

Rulează o colectare a gunoiului.

gc.mem_alloc() int#

Returnează numărul de octeți de RAM heap care sunt alocați de codul Python.

Diferență față de CPython

Această funcție este o extensie MicroPython.

gc.mem_free() int#

Returnează numărul de octeți de RAM heap disponibili pentru a fi alocați de codul Python, sau -1 dacă această cantitate nu este cunoscută.

Diferență față de CPython

Această funcție este o extensie MicroPython.

gc.threshold(amount: int | None = None) int | None#

Setează sau interoghează pragul suplimentar de alocare GC. În mod normal, o colectare este declanșată doar atunci când o nouă alocare nu poate fi satisfăcută, adică la o condiție de memorie insuficientă (OOM). Dacă această funcție este apelată, pe lângă OOM, o colectare va fi declanșată de fiecare dată după ce au fost alocați amount octeți (în total, de la ultima dată când o astfel de cantitate de octeți a fost alocată). amount este de obicei specificat ca fiind mai mic decât dimensiunea totală a heap-ului, cu intenția de a declanșa o colectare mai devreme decât atunci când heap-ul se epuizează, și în speranța că o colectare timpurie va preveni fragmentarea excesivă a memoriei. Aceasta este o măsură euristică, al cărei efect va varia de la aplicație la aplicație, la fel ca și valoarea optimă a parametrului amount.

Apelarea funcției fără argument va returna valoarea curentă a pragului. O valoare de -1 înseamnă un prag de alocare dezactivat.

Diferență față de CPython

Această funcție este o extensie MicroPython. CPython are o funcție similară - set_threshold(), dar din cauza implementărilor GC diferite, semnătura și semantica acesteia sunt diferite.