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