Junior — Middle
Tətbiqlərdə yaddaş itkisinə səbəb ola biləcək səbəblər hansılardır?
sobes.tech Süni İntellekt
AI-dan cavab
Go tətbiqlərində yaddaş sızıntısı (memory leak) bir neçə səbəbdən baş verə bilər:
- Artıq ehtiyac olmayan obyektlərə istinadların saxlanılması. Məsələn, əgər dilim və ya xəritə istifadə olunmayan obyektlərə istinadlar ehtiva edirsə, toplayıcı onları sərbəst buraxa bilməz.
- Bitməyən goroutine-lər. Əgər goroutine döngüdədirsə və ya heç vaxt bağlanmayacaq kanalda gözləyirsə, yaddaşı saxlayacaq.
- Təmizlənmədən qlobal dəyişənlər və ya keşiklərdən istifadə. Əgər məlumatlar davamlı əlavə olunur və silinməzsə, yaddaş artır.
- Unsafe və ya CGo ilə işləmədə səhvlər. Go-ın işləmə vaxtı xaricində düzgün olmayan yaddaş idarəetməsi sızıntılara səbəb ola bilər.
Nümunə: əgər siz dilim yaradırsınız və davamlı olaraq elementlər əlavə edirsinizsə, lakin təmizləmirsinizsə, yaddaş artacaq.