Junior — Middle
Kādi ir atmiņas noplūdes veidi un kā tos identificēt?
sobes.tech AI
Atbilde no AI
iOS ir sistēmā ir vairāki atmiņas noplūdes veidi:
- Cikliski norādījumi (noturēšanas cikli): kad divi objekti viens otru tur kopā ar stiprām norādēm, kas traucē to atbrīvošanu.
- Noplūdes kļūdas, nepareizi lietojot deleģentus: ja deleģents ir deklarēts kā stipra norāde, tas var radīt ciklu.
- Noplūdes, neatslēdzot resursus: piemēram, taimeri, paziņojumu novērotāji, kas nav noņemti.
Lai noteiktu noplūdes, tiek izmantoti Xcode rīki:
- Instruments (Leaks un Allocations) — seko objektiem, kas netiek atbrīvoti.
- Memory Graph Debugger — vizualizē saites starp objektiem un palīdz atrast ciklus.
Piemērs: ja ViewController klasē ir stipra norāde uz taimeri, kas netiek apturēts un nenullēts, tas var novest pie noplūdes.