gc — de garbage collector aansturen

Deze module biedt een interface naar de heap-garbage-collector: het in- of uitschakelen van automatisch verzamelen, het forceren van een onmiddellijke verzameling, het opvragen van de hoeveelheid toegewezen en vrij heapgeheugen, en het afstemmen van de allocatiedrempel die het verzamelen activeert.

Functies

gc.enable() None

Schakel automatisch garbage collection in.

gc.disable() None

Schakel automatisch garbage collection uit. Er kan nog steeds heapgeheugen worden toegewezen, en garbage collection kan nog steeds handmatig worden gestart met gc.collect().

gc.collect() None

Voer een garbage collection uit.

gc.mem_alloc() int

Geef het aantal bytes heap-RAM terug dat door Python-code is toegewezen.

Verschil met CPython

Deze functie is een MicroPython-uitbreiding.

gc.mem_free() int

Geef het aantal bytes heap-RAM terug dat beschikbaar is om door Python-code toegewezen te worden, of -1 als deze hoeveelheid niet bekend is.

Verschil met CPython

Deze functie is een MicroPython-uitbreiding.

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

Stel de aanvullende GC-allocatiedrempel in of vraag deze op. Normaal wordt een verzameling alleen geactiveerd wanneer aan een nieuwe allocatie niet kan worden voldaan, d.w.z. bij een geheugentekort (out-of-memory, OOM). Als deze functie wordt aangeroepen, wordt naast OOM ook telkens een verzameling geactiveerd nadat amount bytes zijn toegewezen (in totaal, sinds de vorige keer dat een dergelijke hoeveelheid bytes is toegewezen). amount wordt gewoonlijk opgegeven als kleiner dan de volledige heapgrootte, met de bedoeling een verzameling eerder te activeren dan wanneer de heap uitgeput raakt, in de hoop dat een vroege verzameling overmatige geheugenfragmentatie voorkomt. Dit is een heuristische maatregel, waarvan het effect van toepassing tot toepassing zal verschillen, evenals de optimale waarde van de amount-parameter.

Het aanroepen van de functie zonder argument geeft de huidige waarde van de drempel terug. Een waarde van -1 betekent een uitgeschakelde allocatiedrempel.

Verschil met CPython

Deze functie is een MicroPython-uitbreiding. CPython heeft een vergelijkbare functie - set_threshold(), maar door de verschillende GC-implementaties zijn de signatuur en semantiek ervan anders.