Sobes.tech
Middle

Aké sú vlastnosti zberača odpadu (Garbage Collector)?

sobes.tech AI

Odpoveď od AI

Hlavné vlastnosti zberača odpadu (Garbage Collector):

  • Automatizácia správy pamäte: Uvoľňuje vývojára od manuálneho prideľovania/uvoľňovania pamäte, znižuje riziko chýb ako "memory leaks" alebo "dangling pointers".
  • Detekcia "mŕtvych" objektov: Používa algoritmy na identifikáciu objektov, ktoré už nie sú používané (neprístupné z koreňových odkazov).
  • Rôzne algoritmy zberu:
    • Mark-and-Sweep: Označuje používané objekty (Mark), potom odstraňuje neoznačené (Sweep). Môže spôsobiť fragmentáciu pamäte.
    • Copying: Rozdeľuje pamäť na dve oblasti. Presúva živé objekty z aktívnej oblasti do neaktívnej, potom čistí aktívnu. Efektívne pri veľkom počte "mŕtvych" objektov, ale vyžaduje viac pamäte.
    • Mark-and-Compact: Označuje používané objekty (Mark), potom ich presúva na začiatok haldy (Compact), čím uvoľní spojitý blok pamäte. Predchádza fragmentácii.
    • Generačný: Rozdeľuje haldu na generácie (Mladá, Staršia). Častejšie zbiera odpad v "mladšej" generácii, kde objekty žijú kratšie. Znižuje záťaž.
  • Stop-the-World (STW) pauzy: Niektoré algoritmy vyžadujú pozastavenie vykonávania programu pre správnu funkciu, čo môže spôsobovať oneskorenia. Moderné GC sa snažia minimalizovať tieto pauzy (napr. G1, ZGC).
  • Nepravidelnosť momentu zberu: Vývojár zvyčajne neovláda presný čas, kedy sa aktivuje zberač odpadu, hoci naň môže nepriamo vplývať.
  • Vplyv na výkon: Proces zberu odpadu spotrebúva CPU a RAM zdroje. Výber algoritmu a nastavenia GC ovplyvňujú výkon aplikácie.