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.