Sobes.tech
Junior — Middle

Tətbiqlərdə yaddaş sızıntılarına səbəb ola biləcək əsas səbəblər nələrdir?

sobes.tech Süni İntellekt

AI-dan cavab

Java tətbiqlərində yaddaş sızıntılarının əsas səbəbləri:

  • Uzunmüddətli referansların saxlanması: obyektlər artıq lazım olmasa da, referanslar vasitəsilə əlçatan qalır, məsələn, təmizlənməyən kolleksiyalarda (List, Map).
  • Statik sahələr: əgər obyektlər statik dəyişənlərdə saxlanılırsa, onlar tətbiqin sonuna qədər yaşayır.
  • Daxili siniflər və lambda ifadələri: qeyri-şüurlu şəkildə xarici obyektlərə referans saxlaya bilərlər.
  • Dinləyicilər və geri çağırışların düzgün istifadə olunmaması: qeydiyyatdan çıxmırsanız, dinləyici obyektlər silinmir.
  • Nativ resurslar: obyektlərlə əlaqəli resurslar (fayllər, əlaqələr) sərbəst buraxılmayıbsa, toplayıcı yaddaşı boşalda bilməz.

Sızıntıların qarşısını almaq üçün, obyektlərin və referansların həyat dövrünü diqqətlə idarə etmək, zəif referanslardan (WeakReference) istifadə etmək və yaddaş monitorinq vasitələri ilə tətbiqi profilaktik etmək vacibdir.