Ako je implementované automatické zberače odpadu v programovacích jazykoch?
sobes.tech AI
Odpoveď od AI
Automatické zber odpadu (Garbage Collection, GC) je mechanizmus správy pamäte, ktorý automaticky uvoľňuje pamäť obsadenú objektmi, ktoré už program nepoužíva.
Hlavné prístupy k implementácii GC:
-
Počítanie odkazov (Reference Counting) — každému objektu je priradený čítač odkazov. Keď dosiahne nulu, objekt sa odstráni. Nevýhoda — nefunguje s cyklickými odkazmi.
-
Značenie a čistenie (Mark-and-Sweep) — GC najskôr označí všetky dostupné objekty, potom odstráni tie, ktoré nie sú označené, považované za odpad.
-
Kopírovanie (Copying Collector) — pamäť je rozdelená na dve oblasti, aktívne objekty sa kopírujú z jednej do druhej, stará oblasť sa uvoľní.
-
Generačný GC (Generational GC) — objekty sa delia do generácií podľa doby života, častejšie sa čistí mladá generácia, čo zvyšuje efektívnosť.
Napríklad na Androide sa používa Dalvik/ART s generačným GC, ktorý pracuje na pozadí, minimalizuje oneskorenia a zabraňuje únikom pamäte.