Forum » Introduce Yourself » Mobil tətbiqdə yaddaş sızması (Memory Leaks) və onun qarşısının alınması yolları

1
July 16, 2026, 8:33 pm
Vakuol

Offline

Newcomer
Posts: 1
Mobil tətbiqdə yaddaş sızması (Memory Leaks) və onun qarşısının alınması yolları

Birinci abzas
Mobil cihazların operativ yaddaş (RAM) resursları məhdud olduğu üçün tətbiqin daxili resurslardan qənaətlə istifadə etməsi onun uzunmüddətli stabilliyi üçün mühüm şərtdir. İdman analitikası tətbiqlərində istifadəçilər müxtəlif ekranlar arasında sürətlə keçid edərkən köhnə səhifələrin yaddaşdan tam silinməməsi sistemin yüklənməsinə və bir müddət sonra proqramın tamamilə çökməsinə (Crash) səbəb ola bilər. Yaddaş sızması (Memory Leak) adlanan bu ciddi problemin qarşısını almaq, daxili zibil yığıcısı (Garbage Collector) mexanizminin iş prinsiplərini mənimsəmək və ən yüksək performanslı stabil tətbiq versiyasını əldə etmək üçün mütəxəssislər mütəmadi olaraq mostbet apkrəsmi resursunda paylaşılan texniki dərsliklərdən yararlanırlar.
Yaddaş sızması nədir və necə baş verir?
Mobil əməliyyat sistemlərində proqram daxilində yaradılan hər bir obyekt (məsələn, yeni bir ekran və ya məlumat modeli) operativ yaddaşda müvəqqəti yer tutur. İstifadəçi həmin ekranı bağladıqda və ya digər bölməyə keçdikdə, sistemin daxili Garbage Collector (Zibil yığıcısı) mexanizmi işə düşür və istifadəsiz qalan bu obyektləri yaddaşdan təmizləyir.
Lakin bəzi hallarda, artıq bağlanmış və istifadə olunmayan bir obyektə tətbiqin digər aktiv hissələrində hələ də canlı bir istinad (reference) qalmış olur. Zibil yığıcısı bu istinadı gördüyü üçün obyekti yaddaşdan silə bilmir. Nəticədə yaddaş sahəsi boş yerə məşğul edilir ki, bu da yaddaş sızması adlanır. Sızmalar yığıldıqca cihazın yaddaşı tamamilə tükənir və tətbiq qəfil sönür.
Ən çox yayılan yaddaş sızması səbəbləri
Tətbiq proqramlaşdırılarkən edilən bəzi sadə diqqətsizliklər böyük yaddaş problemlərinə yol açır:
Statik istinadlar (Static References): Əgər hər hansı bir ekran obyekti (məsələn, böyük bir səhifə dizaynı) statik olaraq təyin edilərsə, o, tətbiq tamamilə bağlanana qədər yaddaşda qalır və heç vaxt silinmir.
Arxa fon tapşırıqları və dinləyicilər (Listeners): Səhifə daxilində başladılmış hər hansı asinxron şəbəkə sorğusu və ya hadisə dinləyicisi (Event Listener) ekran bağlandıqdan sonra ləğv edilmirsə, o, köhnə səhifəni də özü ilə bərabər yaddaşda saxlayır.
Daxili daxilolmalar (Inner Classes): Müstəqil olmayan daxili siniflər hər zaman öz sahiblərinə (üst sinifə) gizli bir istinad saxlayırlar ki, bu da asinxron işlər zamanı sızmaya yol açır.
Yaddaş sızmalarının aşkarlanması və həlli
Müasir proqram təminatı mühəndisliyində yaddaş sızmalarını əl ilə tapmaq çətin olduğu üçün xüsusi avtomatlaşdırılmış analiz alətlərindən (məsələn, LeakCanary) istifadə olunur. Bu alətlər tətbiq işləyərkən arxa fonda yaddaşın daxili xəritəsini (Heap Dump) analiz edir və silinməsi mümkün olmayan obyektlərin zəncirini vizual olaraq göstərir.
Problemin həlli üçün proqramlaşdırma zamanı zəif istinadlardan (Weak Reference) istifadə etmək və ekranın həyat dövrü (Lifecycle) başa çatdıqda bütün aktiv dinləyiciləri və arxa fon işlərini təmizləmək mütləqdir. Bu qaydalara riayət edilməsi tətbiqin saniyələr ərzində donmadan və minimum RAM sərfiyyatı ilə qüsursuz işləməsinə təminat verir.

1

You have to be logged in to reply!