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.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.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.