Junior — Middle
Koji uzroci mogu izazvati gubitak memorije u aplikacijama?
sobes.tech АИ
Одговор од АИ
Curenje memorije (memory leak) u Go aplikacijama može se dogoditi iz više razloga:
- Održavanje referenci na objekte koji više nisu potrebni. Na primer, ako slice ili mapa sadrže reference na neiskorišćene objekte, sakupljač smeća ih neće moći osloboditi.
- Goroutine-ovi koji se ne završavaju. Ako je goroutine u petlji ili čeka na kanal koji nikada nije zatvoren, održaće memoriju.
- Korišćenje globalnih promenljivih ili keševa bez čišćenja. Ako se podaci stalno dodaju i ne brišu, memorija raste.
- Greške u radu sa unsafe ili CGo. Neispravno upravljanje memorijom van Go runtime-a može dovesti do curenja.
Primer: ako kreirate slice i stalno dodajete elemente u njega, ali ga ne čistite, memorija će rasti.