Instruments ObjectAlloc: Wyjaśnienie żywych bajtów i ogólnych bajtów
Używam narzędzia ObjectAlloc firmy Instument, aby zrozumieć, co robi pamięć moja aplikacja (iPhone) oraz kiedy i gdzie to robi.
Bardzo proszę o podstawowe wyjaśnienie tych statystyk:
Kiedy próbuję ustalić, ile pamięci zużywa moja aplikacja, Czy mam patrzeć na bajty na żywo czy na bajty ogólne? Czy obejmuje to wyciekła pamięć? Czym są obiekty przejściowe?
Thanks
2 answers
ObjectAlloc
śledzi całą alokację pamięci i dealokację w czasie działania programu.
The Living bytes, or Net bytes
to, ile pamięci zużywa aplikacja w chwili wybranej na osi czasu. Obejmuje to wyciekającą pamięć, ponieważ wyciekająca pamięć nigdy nie jest dealokowana.
#Living
Ile przydziałów o określonym rozmiarze/typie obiektu miało miejsce (i nadal są przydzielane). Jest to bardzo przydatne podczas poszukiwania wycieków.
Na przykład, jeśli powtarzalnie wykonuj akcję (jak wejście z kontrolera widoku modalnego), a zobaczysz, że #Living
obiektu rośnie o tę samą ilość za każdym razem, wtedy prawdopodobnie wyciekniesz te obiekty. Następnie możesz potwierdzić, wiercąc w dół i widząc dokładną linię kodu przydzielającą obiekty, a nawet zobaczyć indeks czasu, który został utworzony.
Overall bytes
zawiera pamięć, która została uwolniona. Przydatne jest śledzenie tej liczby do celów optymalizacji wydajności, ale nie, jeśli próbujesz zobaczyć swój aktualny ślad pamięci lub szukasz przecieków.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-09-07 06:50:54
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-12 23:12:58