Używam narzędzia ObjectAlloc firmy Instument, aby zrozumieć, co robi moja aplikacja (iPhone) oraz kiedy i gdzie to robi.
Bardzo chciałbym uzyskać podstawowe wyjaśnienie tych statystyk:
- Live Bytes
- #Życie
- #Przejściowy
- Ogółem bajtów
Kiedy próbuję ustalić, ile pamięci używa moja aplikacja, czy mam spojrzeć na aktywne bajty lub ogólne bajty? Czy obejmuje to wyciek pamięci? Co to są obiekty przejściowe?
Dzięki
Odpowiedzi:
ObjectAlloc
śledzi całą alokację i zwalnianie pamięci w czasie działania programu.Jest
Living bytes, or Net bytes
to ilość pamięci używanej przez aplikację w momencie zaznaczenia na osi czasu. Obejmuje to wyciek pamięci, ponieważ wyciekła pamięć nigdy nie jest zwalniana.#Living
to liczba alokacji określonego rozmiaru / typu obiektu (i nadal są one przydzielane). Jest to bardzo przydatne podczas wyszukiwania wycieków.Na przykład, jeśli powtarzalnie wykonujesz akcję (na przykład wchodzenie z kontrolera widoku modalnego) i widzisz, że
#Living
obiekt za każdym razem rośnie o tę samą wartość, prawdopodobnie przeciekasz te obiekty. Następnie możesz potwierdzić, przechodząc do szczegółów i wyświetlając dokładną linię kodu, która alokuje obiekty, a nawet zobaczyć indeks czasu, w którym każdy z nich został utworzony.Overall bytes
zawiera zwolnioną pamięć. Śledzenie tej liczby jest przydatne w celu optymalizacji wydajności, ale nie wtedy, gdy po prostu próbujesz zobaczyć bieżący ślad pamięci lub szukasz wycieków.źródło
Objaśnienie statystyk z dokumentów Apple. Link do dokumentu
źródło