Opis narzędzia do sprawdzania nieszczelności pamięci - iPhone
Powyższe zdjęcia to nieszczelności aplikacji.
Tutaj chcę zrozumieć, że w rozszerzonej szczegółowości - można zobaczyć różne kolory, takie jak jasnozielony, jasnoróżowy, jasnobrązowy, jasny fiolet.
Co oznacza każdy kolor?
Teraz inne zamieszanie to "Jak zlokalizować kod, który powoduje wyciek pamięci?"
Do jakiego limitu przecieku pamięci - rzeczywisty iPhone może dalej działać. (załóżmy 10 bajtów nie ma problemu, 20 bajtów bez problemowe & 200 bajtów problem)
- Co każdy kolor oznacza?
- Który kolor oznacza nasz kod/Z którego szczegółu możemy dostać się do kodu, w którym przyznaliśmy obiekt & zapomnieliśmy o zwolnieniu go?
(Na przykład - po kliknięciu na UIKit drugą komórkę w szczegółach - nie możemy dostać się do kodu)
- Dlaczego musimy rozwiązać wszelkie przecieki? - nawet jeden wyciek może zablokować iPhone'a?
- Dlaczego iPhone pozwala, aby wycieki pozostały w pamięci?/dlaczego wyrzucanie śmieci nie odbywa się automatycznie po zakończeniu aplikacji?
- Jeśli próbuję dealloc obiektów, które powinny być dealokowane zgodnie z instrumentów, Moje zgłoszenie kończy się nienormalnie. Jeśli nie dealall, Moja aplikacja działa idealnie, jak?
- Dlaczego sugeruje się, aby czekać w widoku do 10 lub więcej sekund, jeśli wystąpił wyciek, wyciek zostanie wykryty przez Instruments?
+1 Doskonała odpowiedź Kendall. @Sagar, powinieneś zauważyć, że na pytanie 3 powinieneś * nigdy * wywołać dealloc bezpośrednio, tylko zachować lub wydać (tylko wyjątek to [super dealok]). Uważam, że twoim rozwiązaniem jest zaimplementowanie autoreasady, ponieważ wygląda na to, że przyczyną awarii jest wczesne zwolnienie obiektów. np. [[[NSArray alloc] init] autorelease]; – h4xxr