gc — controllo del garbage collector¶
Questo modulo fornisce un’interfaccia al garbage collector dell’heap: abilitazione o disabilitazione della raccolta automatica, forzatura di una raccolta immediata, interrogazione della quantità di memoria heap allocata e libera, e regolazione della soglia di allocazione che innesca la raccolta.
Funzioni¶
- gc.disable() None¶
Disabilita la raccolta automatica della garbage collection. La memoria heap può comunque essere allocata, e la garbage collection può comunque essere avviata manualmente usando
gc.collect().
- gc.mem_alloc() int¶
Restituisce il numero di byte di RAM heap allocati dal codice Python.
Differenza rispetto a CPython
Questa funzione è un’estensione di MicroPython.
- gc.mem_free() int¶
Restituisce il numero di byte di RAM heap disponibili per l’allocazione da parte del codice Python, oppure -1 se questa quantità non è nota.
Differenza rispetto a CPython
Questa funzione è un’estensione di MicroPython.
- gc.threshold(amount: int | None = None) int | None¶
Imposta o interroga la soglia di allocazione aggiuntiva del GC. Normalmente, una raccolta viene innescata solo quando una nuova allocazione non può essere soddisfatta, cioè in una condizione di esaurimento della memoria (OOM). Se questa funzione viene chiamata, oltre all’OOM, una raccolta verrà innescata ogni volta che sono stati allocati amount byte (in totale, dall’ultima volta che è stata allocata tale quantità di byte). amount viene solitamente specificato come inferiore alla dimensione completa dell’heap, con l’intento di innescare una raccolta prima che l’heap si esaurisca, e nella speranza che una raccolta anticipata prevenga un’eccessiva frammentazione della memoria. Si tratta di una misura euristica, il cui effetto varierà da applicazione ad applicazione, così come il valore ottimale del parametro amount.
Chiamare la funzione senza argomenti restituirà il valore corrente della soglia. Un valore di -1 indica una soglia di allocazione disabilitata.
Differenza rispetto a CPython
Questa funzione è un’estensione di MicroPython. CPython ha una funzione simile -
set_threshold(), ma a causa delle diverse implementazioni del GC, la sua firma e la sua semantica sono diverse.