2009-06-30 17 views
13

Usunąłem moją aplikację wycieków za pomocą narzędzia przecieki, ale nadal zauważam, że narzędzie objectalloc przeskakuje w liczbie przydzielonych obiektów i ślad po przełączeniu widoków.Sprawdzanie alokacji pamięci w instrumentach

jestem szczególnie widząc wysokie numery od:

GeneralBlock-16 z Fundacji odpowiedzialny głównie z rozmówcą NSLogv

i

GeneralBlock-0 z najczęściej QuartzCore odpowiedzialnych

jakieś wskazówki co mogę zrobić, żeby dalej to debugować?

Dzięki!

Odpowiedz

23

Narzędzie ObjectAlloc służy do graficznego obliczania całkowitej liczby obiektów w czasie i nie uwzględnia deallokacji. Zasadniczo: zawsze będzie się podnosić.

Co można zrobić, to spojrzeć na kolumny Net Bytes i # Net. Kolumny te zostaną zmienione w zależności od liczby obiektów, które zwolnisz, a jeśli obawiasz się całkowitej alokacji obiektów, możesz ich użyć do oceny wydajności programu.

Możesz zajrzeć na this thread na forach wsparcia Apple - więcej informacji o tym, co Instrumenty mierzy i jak możesz przetestować swoją aplikację.

+0

Przepraszam, może moje pytanie było niejasne. Mam świadomość, że przydzielanie obiektów zawsze wzrasta, jednak miałem na myśli Net Bytes i #Net, które również nigdy nie zanikają, co jest niepokojące. Przesuwanie widoków w kontrolerach nawigacji znacznie zwiększa te liczby, a przyciąganie widoków nie zmniejsza ich. Również zwykły numer GeneralBlock-0 jest niepokojący. Naprawdę chcę wiedzieć, dlaczego tak wiele obiektów 0-bitowych istnieje. –

+5

To nie jest całkiem poprawne; możesz skonfigurować instrument alokacji, aby śledził tylko alokacje na żywo. W takim przypadku kolumny dokładnie odzwierciedlą to, co jest teraz w pamięci. – bbum

+0

bbum ma rację, w Xcode 4, domyślny szablon Przydziałów w Instrument pokazuje "Wszystkie Przydziały" w podziale na kolumny, wyświetlając zarówno Żywe Bajty, jak i Ogólne Bajty. – MattyG