Junior — Middle
Tətbiqlərinizdə yaddaş sızıntılarını necə aşkarlayıb və aradan qaldırırsınız?
sobes.tech Süni İntellekt
AI-dan cavab
iOS tətbiqlərində yaddaş sızıntılarını aşkar etmək üçün adətən Instruments ilə Leaks və Allocations profilindən istifadə edirəm.
- Uygulamayı Instruments vasitəsilə işə salıram və real vaxtda sızıntıların olub-olmadığını yoxlayıram.
- Bağlanmayan obyektləri və onların tutma zəncirlərini (retaining cycles) analiz edirəm.
- Tez-tez, obyektlər və ya bağlamalar arasında güclü dövri əlaqələr səbəbindən sızıntılar baş verir, ona görə də weak və unowned istinadların istifadəsini yoxlayıram.
Bağlamada retention cycle-ni aradan qaldırmaq nümunəsi:
class ViewController {
var closure: (() -> Void)?
func setup() {
closure = { [weak self] in
self?.doSomething()
}
}
func doSomething() {
print("Əməliyyat")
}
}
Burada, [weak self] istifadəsi obyekt və bağlama arasında güclü tutma dövrünü qarşısını alır.
Həmçinin, Xcode-un statik analizatorundan (Product -> Analyze) istifadə etmək yaddaş problemlərini aşkar etmək üçün faydalıdır.