Sobes.tech
Junior

Čo je zberač odpadu (Garbage Collector)?

sobes.tech AI

Odpoveď od AI

Automatický mechanizmus správy pamäte, ktorý uvoľňuje nepoužívané objekty na halde.

Princípy fungovania:

  • Detekcia dostupnosti objektov: Sleduje objekty, na ktoré odkazujú živé (prístupné) objekty zo zdrojov (napríklad zásobník vlákien).
  • Uvoľnenie nedostupných objektov: Objekty bez odkazov sú považované za "odpad" a ich pamäť môže byť znovu použitá.

Typy zberačov odpadu (závisí od jazyka/platformy):

  • Mark and Sweep: Označí dostupné objekty (označenie), potom prejde haldu a uvoľní neoznačené (čistenie). Môže spôsobovať fragmentáciu pamäte.
  • Copying: Rozdelí haldu na dve časti. Kopíruje živé objekty do novej časti, potom čistí starú. Predchádza fragmentácii, ale vyžaduje viac pamäte.
  • Generačný: Delenie objektov podľa veku na generácie. Častejšie zbiera odpad v "mladšej" generácii, kde väčšina objektov nežije dlho.

Výhody:

  • Znižuje pravdepodobnosť únikov pamäte.
  • Zjednodušuje vývoj (nie je potrebné explicitne uvoľňovať pamäť).

Nevýhody:

  • Môže spôsobovať oneskorenia (pauzy) počas zberu.
  • Čas zberu je nepredvídateľný.