gc — roskienkerääjän hallinta

Tämä moduuli tarjoaa rajapinnan kekomuistin roskienkerääjään: automaattisen keräyksen käyttöönotto tai poistaminen käytöstä, välittömän keräyksen pakottaminen, varatun ja vapaan kekomuistin määrän kysely sekä keräyksen laukaisevan allokointikynnyksen säätö.

Funktiot

gc.enable() None

Ottaa käyttöön automaattisen roskienkeräyksen.

gc.disable() None

Poistaa automaattisen roskienkeräyksen käytöstä. Kekomuistia voi edelleen varata, ja roskienkeräyksen voi edelleen käynnistää manuaalisesti käyttämällä gc.collect() -metodia.

gc.collect() None

Suorittaa roskienkeräyksen.

gc.mem_alloc() int

Palauttaa Python-koodin varaaman kekomuistin (RAM) tavumäärän.

Ero CPythoniin

Tämä funktio on MicroPython-laajennus.

gc.mem_free() int

Palauttaa Python-koodin varattavissa olevan kekomuistin (RAM) tavumäärän, tai -1 jos tämä määrä ei ole tiedossa.

Ero CPythoniin

Tämä funktio on MicroPython-laajennus.

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

Asettaa tai kysyy ylimääräisen GC-allokointikynnyksen. Normaalisti keräys laukaistaan vain, kun uutta varausta ei voida täyttää, eli muistin loppumistilanteessa (OOM). Jos tätä funktiota kutsutaan, OOM:n lisäksi keräys laukaistaan joka kerta sen jälkeen, kun amount tavua on varattu (yhteensä, edellisestä kerrasta jolloin tällainen tavumäärä on varattu). amount määritetään yleensä pienemmäksi kuin koko keon koko, tarkoituksena laukaista keräys aikaisemmin kuin keon ehtyessä, ja toiveena että aikainen keräys estää liiallisen muistin pirstoutumisen. Tämä on heuristinen toimenpide, jonka vaikutus vaihtelee sovelluksesta toiseen, samoin kuin amount -parametrin optimaalinen arvo.

Funktion kutsuminen ilman argumenttia palauttaa kynnyksen nykyisen arvon. Arvo -1 tarkoittaa poistettua allokointikynnystä.

Ero CPythoniin

Tämä funktio on MicroPython-laajennus. CPythonissa on samankaltainen funktio - set_threshold(), mutta erilaisten GC-toteutusten vuoksi sen allekirjoitus ja semantiikka ovat erilaiset.