Junior — Middle
Dinamik yaddaş idarəsində hansı növ yaddaş sızmaları baş verə bilər?
sobes.tech Süni İntellekt
AI-dan cavab
Dinamik yaddaş idarə edilməsində aşağıdakı növ yaddaş sızmaları baş verə bilər:
- Unutulmuş istinadlar səbəbindən sızma: obyektlər yaddaşda qalır, çünki onlara hələ də istinadlar var, baxmayaraq ki, artıq lazım deyillər.
- Dairəvi istinadlar: obyektlər bir-birinə istinad edir və çöp toplayıcı döngü aşkarlamasını dəstəkləməzsə, onları sərbəst buraxa bilməz.
- Yönetilməyən unmanaged resurslar: əgər C#-da unmanaged resurslar (məsələn, deskriptorlar, fayllar) istifadə olunursa və onlar açıq şəkildə
Disposevə ya finalizer vasitəsilə sərbəst buraxılmırsa.
Dairəvi istinad səbəbindən sızma nümunəsi:
class Node {
public Node Next;
}
Node a = new Node();
Node b = new Node();
a.Next = b;
b.Next = a; // dairə
// Əgər çöp toplayıcı döngü aşkarlamasını dəstəkləməzsə, obyektlər sərbəst buraxılmayacaq
Sızmaları qarşısını almaq üçün, istinadları düzgün idarə etmək və unmanaged resursları sərbəst buraxmaq vacibdir.