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