Junior
Mis on prügikoristaja (Garbage Collector)?
sobes.tech AI
Vastus AI-lt
Automaatne mälu haldamise mehhanism, mis vabastab kasutamata objektid virnas (heap) seest.
Tööpõhimõtted:
- Objektide kättesaadavuse tuvastamine: Jälgib elavaid (saadaval olevaid) objekte, mis viitavad juurtest (näiteks, lõimede virnast).
- Kättesaamatute objektide vabastamine: Objektid ilma viideteta loetakse "prügiks" ning nende mälu võib olla uuesti kasutatav.
Prügikoristajate tüübid (sõltuvalt keelest/platvormist):
- Mark and Sweep: Märgistab kättesaadavad objektid (märgistamine), seejärel läbib virna ja vabastab märgistamata (puhastamine). Võib põhjustada mälu fragmentatsiooni.
- Copying: Jagab virna kaheks osaks. Kopeerib elavad objektid uude ossa, seejärel puhastab vana osa. Ennetab fragmentatsiooni, kuid nõuab rohkem mälu.
- Pärilikkus: Jagab objektid vanuse järgi põlvkondadesse. Kogub prügi sagedamini "noores" põlvkonnas, kus enamik objekte elab lühikest aega.
Eelised:
- Vähendab mälu lekkimise tõenäosust.
- Lihtsustab arendust (pole vaja mälu otseselt vabastada).
Miinused:
- Võib põhjustada viivitusi (pausid) kogumise ajal.
- Kogumise aeg on ettearvamatu.