Sobes.tech
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.