Sobes.tech
Middle

Koje su osobine Garbage Collectora?

sobes.tech АИ

Одговор од АИ

Glavne osobine sakupljača smeća (Garbage Collector):

  • Automatizacija upravljanja memorijom: Oslobađa programera od ručne alokacije/oslobađanja memorije, smanjujući rizik od grešaka poput "memory leaks" ili "dangling pointers".
  • Detekcija "mrtvih" objekata: Koristi algoritme za identifikaciju objekata koji se više ne koriste (ne pristupa im se iz korenskih referenci).
  • Različiti algoritmi sakupljanja:
    • Mark-and-Sweep: Obeležava korišćene objekte (Mark), zatim uklanja neobeležene (Sweep). Može izazvati fragmentaciju memorije.
    • Copying: Deli memoriju na dva prostora. Pomera žive objekte iz aktivnog u neaktivni prostor, zatim čisti aktivni. Efikasno je kod velikog broja "mrtvih" objekata, ali zahteva više memorije.
    • Mark-and-Compact: Obeležava korišćene objekte (Mark), zatim ih pomera na početak hrpe (Compact), oslobađajući kontinuirani blok memorije. Sprečava fragmentaciju.
    • Generacijski: Deli hrpu na generacije (Mlad, Star). Često sakuplja otpad u "mladoj" generaciji, gde objekti žive kraće. Smanjuje opterećenje.
  • Stop-the-World (STW) pauze: Neki algoritmi zahtevaju zaustavljanje izvršavanja programa za ispravno funkcionisanje, što može izazvati kašnjenja. Moderni GC-ovi nastoje da minimiziraju ove pauze (npr. G1, ZGC).
  • Nepredvidivost trenutka sakupljanja: Programer obično ne kontroliše tačno kada će se aktivirati sakupljač smeća, iako može indirektno uticati na to.
  • Uticaj na performanse: Proces sakupljanja smeća troši CPU i RAM resurse. Izbor algoritma i podešavanja GC utiču na performanse aplikacije.