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