gc — upravljanje sakupljačem smeća

Ovaj modul pruža sučelje za sakupljač smeća hrpe (heap): omogućavanje ili onemogućavanje automatskog sakupljanja, prisilno trenutno sakupljanje, ispitivanje količine zauzete i slobodne memorije hrpe te podešavanje praga alokacije koji pokreće sakupljanje.

Funkcije

gc.enable() None

Omogućuje automatsko sakupljanje smeća.

gc.disable() None

Onemogućuje automatsko sakupljanje smeća. Memorija hrpe (heap) i dalje se može alocirati, a sakupljanje smeća i dalje se može pokrenuti ručno pomoću gc.collect().

gc.collect() None

Pokreće sakupljanje smeća.

gc.mem_alloc() int

Vraća broj bajtova RAM-a hrpe (heap) koje je alocirao Python kod.

Razlika u odnosu na CPython

Ova funkcija je MicroPython proširenje.

gc.mem_free() int

Vraća broj bajtova RAM-a hrpe (heap) dostupnih Python kodu za alokaciju, ili -1 ako ta količina nije poznata.

Razlika u odnosu na CPython

Ova funkcija je MicroPython proširenje.

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

Postavlja ili ispituje dodatni GC prag alokacije. Uobičajeno se sakupljanje pokreće samo kada nova alokacija ne može biti zadovoljena, tj. u uvjetima nedostatka memorije (OOM). Ako se ova funkcija pozove, uz OOM, sakupljanje će se pokrenuti svaki put nakon što je alocirano amount bajtova (ukupno, od prethodnog puta kada je takva količina bajtova bila alocirana). amount se obično navodi kao manji od pune veličine hrpe (heap), s namjerom da se sakupljanje pokrene ranije nego kada hrpa postane iscrpljena, te u nadi da će rano sakupljanje spriječiti pretjeranu fragmentaciju memorije. Ovo je heuristička mjera čiji će učinak varirati od aplikacije do aplikacije, kao i optimalna vrijednost parametra amount.

Pozivanje funkcije bez argumenta vratit će trenutnu vrijednost praga. Vrijednost -1 znači onemogućen prag alokacije.

Razlika u odnosu na CPython

Ova funkcija je MicroPython proširenje. CPython ima sličnu funkciju - set_threshold(), ali zbog različitih implementacija GC-a njezin potpis i semantika su drugačiji.