gc — styr skräpsamlaren

Denna modul tillhandahåller ett gränssnitt till heapens skräpsamlare: aktivering eller avaktivering av automatisk insamling, framtvingande av en omedelbar insamling, förfrågan om mängden allokerat och ledigt heap-minne, samt justering av den allokeringströskel som utlöser insamling.

Funktioner

gc.enable() None

Aktivera automatisk skräpinsamling.

gc.disable() None

Avaktivera automatisk skräpinsamling. Heap-minne kan fortfarande allokeras, och skräpinsamling kan fortfarande initieras manuellt med gc.collect().

gc.collect() None

Kör en skräpinsamling.

gc.mem_alloc() int

Returnera antalet byte heap-RAM som är allokerade av Python-kod.

Skillnad mot CPython

Denna funktion är en MicroPython-utökning.

gc.mem_free() int

Returnera antalet byte heap-RAM som är tillgängliga för Python-kod att allokera, eller -1 om denna mängd inte är känd.

Skillnad mot CPython

Denna funktion är en MicroPython-utökning.

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

Sätt eller efterfråga den extra GC-allokeringströskeln. Normalt utlöses en insamling endast när en ny allokering inte kan tillgodoses, dvs. vid ett out-of-memory (OOM)-tillstånd. Om denna funktion anropas utlöses, utöver vid OOM, en insamling varje gång efter att amount byte har allokerats (totalt, sedan den föregående gången en sådan mängd byte allokerades). amount anges vanligtvis som mindre än den fulla heap-storleken, i avsikt att utlösa en insamling tidigare än när heapen blir uttömd, och i förhoppning om att en tidig insamling ska förhindra överdriven minnesfragmentering. Detta är en heuristisk åtgärd, vars effekt varierar från applikation till applikation, liksom det optimala värdet på parametern amount.

Att anropa funktionen utan argument returnerar trösklens aktuella värde. Ett värde på -1 betyder en avaktiverad allokeringströskel.

Skillnad mot CPython

Denna funktion är en MicroPython-utökning. CPython har en liknande funktion - set_threshold(), men på grund av olika GC-implementationer skiljer sig dess signatur och semantik.