Junior
Co je to garbage collector (sběrač odpadu)?
sobes.tech AI
Odpověď od AI
Automatický mechanismus správy paměti, který uvolňuje nepoužívané objekty na haldě.
Principy fungování:
- Detekce dostupnosti objektů: Sleduje objekty, na které odkazují živé (přístupné) objekty ze zdrojů (například zásobník vláken).
- Uvolnění nedostupných objektů: Objekty bez odkazů jsou považovány za "odpad" a jejich paměť může být znovu použita.
Typy sběračů odpadu (závisí na jazyce/platformě):
- Mark and Sweep: Označí dostupné objekty (označení), poté projde haldu a uvolní neoznačené (čištění). Může způsobit fragmentaci paměti.
- Copying: Rozdělí haldu na dvě části. Kopíruje živé objekty do nové části, poté vyčistí starou. Předchází fragmentaci, ale vyžaduje více paměti.
- Generační: Dělí objekty podle věku do generací. Častěji sbírá odpad v "mladé" generaci, kde většina objektů nežije dlouho.
Výhody:
- Snižuje pravděpodobnost úniků paměti.
- Zjednodušuje vývoj (není třeba explicitně uvolňovat paměť).
Nevýhody:
- Může způsobit zpoždění (pauzy) při sběru.
- Čas sběru je nepředvídatelný.