Sobes.tech
Junior — Middle

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:

  1. 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.

  2. 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.

  3. 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í.

  4. 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.