Sobes.tech
Junior — Middle

Môžete vysvetliť mechanizmus práce zberača odpadkov v riadených programovacích jazykoch?

sobes.tech AI

Odpoveď od AI

Zberač odpadkov (Garbage Collector, GC) v upravljanih programskih jezikih samodejno sprosti pomnilnik, ki ga zasedajo objekti, ki jih program več ne uporablja.

Osnovni principi delovanja:

  • Sledenje dosegljivosti objektov: GC določi, kateri objekti so dostopni iz korenskih točk (npr. globalne spremenljivke, sklad klicev). Če objekt ni dosegljiv, se šteje za odpadek.
  • Oprostitev pomnilnika: Nedosegljivi objekti se odstranijo, pomnilnik, ki ga zasedajo, pa se vrne sistemu.

V Go deluje zbiralnik odpadkov po principu sledenja z štetjem dosegljivosti. Periodično se zažene, zaustavitev izvajanja programa za kratek čas (stop-the-world), da določi, kateri objekti so živi.

Go uporablja konkurenčni, paralelni GC z nizko zakasnitvijo, kar minimizira vpliv na zmogljivost.

Na ta način programer ne rabi ročno upravljati s pomnilnikom, kar zmanjša napake, povezane z uhajanjem pomnilnika in dvojno sprostitvijo.