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