Maybaygiare.org

Blog Network

sprawdzaj aktywność procesora za pomocą CPU Profiler

Optymalizacja użycia procesora w aplikacji ma wiele zalet, takich jak szybsze i płynniejsze wrażenia użytkownika i zachowanie żywotności baterii urządzenia.

Możesz użyć profilera PROCESORA, aby sprawdzić użycie procesora i aktywność wątku w czasie rzeczywistym podczas interakcji z aplikacją, lub możesz sprawdzić szczegóły w zapisanych śladach metod, śladach funkcji i śladach systemowych.

określone rodzaje informacji, które rejestruje i pokazuje Profiler procesora, sąokreślone, za pomocą której konfiguracji nagrywania wybierzesz:

  • śledzenie systemu: przechwytuje drobnoziarniste szczegóły, które pozwalają sprawdzić, w jaki sposób Twoja aplikacja wchodzi w interakcje z zasobami systemowymi.
  • ślady metod i funkcji: dla każdego wątku w procesie aplikacji możesz dowiedzieć się, które metody (Java) lub funkcje (C/C++) są wykonywane przez pewien okres czasu i zasoby procesora, które każda metoda lub funkcja zużywa podczas swojej operacji. Można również użyć metody i funkcji śledzenia do identyfikacji wywołujących i wywołujących. Wywołanie to metoda lub funkcja, która wywołuje inną funkcję metodor, a wywołanie to ta, która jest wywoływana przez inną metodę orfunction. Możesz użyć tych informacji, aby określić, które metody lub funkcje są odpowiedzialne za zbyt częste wywoływanie określonych zadań o dużych zasobach i zoptymalizować kod aplikacji, aby uniknąć niepotrzebnej pracy.

    podczas nagrywania śladów metody możesz wybrać sample lub instrumentedrecording. Podczas nagrywania śladów funkcji można używać tylko samplowanych nagrań.

aby uzyskać szczegółowe informacje na temat używania i wybierania każdej z tych opcji śledzenia, wybierz konfigurację nagrywania.

przegląd profilera procesora

aby otworzyć Profiler procesora, wykonaj następujące kroki:

  1. wybierz Widok> okna narzędzi> profil lub kliknij Profil na pasku narzędzi.

    Jeśli zostanie wyświetlony monit o wybranie celu wdrożenia, wybierz urządzenie, które ma wdrożyć aplikację w celu profilowania. Jeśli podłączyłeś urządzenie przez Usbale nie widzisz go na liście, upewnij się, że masz debugowanie USB.

  2. kliknij w dowolnym miejscu na osi czasu procesora, aby otworzyć Profiler procesora.

Po otwarciu profilera procesora natychmiast zaczyna wyświetlać aktywność procesora i wątku aplikacji. Powinieneś zobaczyć coś podobnego do rysunku 1.

Rysunek 1. Timelines w CPU Profiler.

jak pokazano na rysunku 1, domyślny widok dla profilera CPU zawiera następujące linie czasowe:

  1. timeline zdarzeń: Pokazuje działania w aplikacji w trakcie przechodzenia przez różne stany w cyklu życia i wskazuje interakcje użytkownika z urządzeniem, w tym zdarzenia związane z obrotem ekranu. Aby uzyskać informacje na temat włączania osi czasu zdarzenia na urządzeniach z systemem Android 7.1 (API poziom 25) i niższych, zobacz Włączanie Zaawansowanego profilowania.
  2. oś czasu procesora: pokazuje wykorzystanie procesora w czasie rzeczywistym w aplikacji-jako procent całkowitego dostępnego czasu procesora—oraz całkowitą liczbę wątków używanych przez aplikację. Oś czasu pokazuje również użycie procesora przez inne procesy (takie jak procesy systemowe lub inne aplikacje), dzięki czemu można porównać je z użyciem aplikacji. Historyczne dane użycia procesora można sprawdzić, przesuwając mysz wzdłuż poziomej osi czasu.
  3. oś czasu aktywności wątku: wyświetla każdy wątek należący do procesu aplikacji i wskazuje jego aktywność wzdłuż osi czasu, używając kolorów wymienionych poniżej. Po zarejestrowaniu śladu możesz wybrać wątek z tej osi czasu, aby sprawdzić jego dane w okienku śledzenia.
    • Zielony: wątek jest aktywny lub jest gotowy do użycia procesora. Oznacza to, że jest w stanie biegania lub biegania.
    • Żółty: wątek jest aktywny, ale czeka na operację wejścia/Wyjścia, taką jak dysk lub Wejście / Wyjście sieciowe, zanim będzie mógł zakończyć swoją pracę.
    • Szary: wątek jest uśpiony i nie zużywa żadnego czasu procesora. Zdarza się to, gdy wątek wymaga dostępu do zasobu, który nie jest jeszcze dostępny. Albo wątek przechodzi w dobrowolny sen, albo jądro umieszcza wątek w stan uśpienia, dopóki wymagany zasób nie stanie się dostępny.

    Profiler procesora zgłasza również użycie procesora w wątkach, które Android Studio i Platforma Android dodają do procesu aplikacji—takich jak JDWPProfile SaverStudio:VMStatsStudio:Perfa div>i Studio:Heartbeat (chociaż dokładne nazwy wyświetlane na osi czasu aktywności wątku mogą się różnić). Android Studio zgłasza te dane, dzięki czemu można zidentyfikować, kiedy aktywność wątku i użycie procesora są rzeczywiście spowodowane przez kod aplikacji.

śledzenie rekordów

aby rozpocząć nagrywanie śladu, wybierz konfigurację nagrywania z menu rozwijanego powyżej lub poniżej profilera procesora i kliknij rekord.

Rysunek 2. Profiler procesora wyświetla status, czas trwania i typ nagrywanego nagrania.

wejdź w interakcję z aplikacją, a następnie kliknij Stop, gdy skończysz. Profiler automatycznie wyświetla informacje o śledzeniu w panelu śledzenia, pokazanym na rysunku 3:

Rysunek 3. Profiler procesora po nagraniu ścieżki dźwiękowej.

  1. wybrany zakres: określa część zarejestrowanego czasu do sprawdzenia w okienku śledzenia. Podczas pierwszego nagrywania śladu Profiler procesora automatycznie wybiera całą długość nagrania na osi czasu procesora. Aby sprawdzić dane śledzenia tylko dla części zarejestrowanego zakresu czasowego, przeciągnij krawędzie podświetlonego obszaru.
  2. sekcja interakcji: wyświetla zdarzenia interakcji użytkownika i cyklu życia aplikacji na osi czasu.
  3. sekcja wątków: wyświetla aktywność w stanie wątku (np. uruchomiony, uśpiony, itd.) i wywołanie wykresu (lub wykresu zdarzeń śledzenia w śledzeniu systemu)dla każdego wątku na osi czasu.
    • użyj skrótów myszy i klawiatury, aby poruszać się po osi czasu.
    • kliknij dwukrotnie nazwę wątku lub naciśnij Enter, gdy wątek jest zaznaczony, aby rozwinąć lub zwinąć wątek.
    • Wybierz wątek, aby zobaczyć dodatkowe informacje w okienku analizy. Przytrzymaj Shift lub Ctrl (polecenie na komputerze Mac), aby wybrać wiele wątków.
    • Wybierz wywołanie metody (lub zdarzenie śledzenia w śledzeniu systemowym), aby zobaczyć dodatkowe informacje w okienku analizy.
  4. Panel analizy: Wyświetla dane śledzenia dla wybranego zakresu czasowego i wątku lub metody. W tym okienku możesz wybrać sposób wyświetlania każdego śladu stosu (za pomocą kart analiza) i sposób mierzenia czasu wykonania (za pomocą menu rozwijanego odniesienie do czasu).
  5. zakładki Panelu analizy: wybierz sposób wyświetlania szczegółów śledzenia. Aby uzyskać szczegółowe informacje na temat każdej opcji, zobacz Sprawdzanie śladów.
  6. time reference menu: wybierz jedną z poniższych opcji, aby określić, w jaki sposób mierzone są informacje o czasie dla każdego połączenia (obsługiwane tylko w przykładowych/śladowych metodach Java):
    • Zegar Ścienny czas: Informacje o czasie przedstawiają rzeczywisty czas, który upłynął.
    • czas wątku: informacja o czasie przedstawia rzeczywisty czas, który upłynął minus część tego czasu, gdy wątek nie zużywa zasobów procesora. Dla każdego połączenia, jego czas wątku jest zawsze mniejszy lub równy czasowi zegara ściennego. Korzystanie thread time daje lepsze zrozumienie, ile rzeczywistego wykorzystania procesora wątku jest zużywane przez daną metodę lub funkcję.
  7. Filter: filtry śledzą dane według funkcji, metody, klasy lub nazwy pakietu. Na przykład, jeśli chcesz szybko zidentyfikować dane śledzenia związane z konkretnym połączeniem, wpisz nazwę w polu wyszukiwania. Na karcie Wykres płomienia wyróżniane są stosy połączeń zawierające połączenie, pakiet lub klasę pasującą do zapytania wyszukiwania. W zakładkach góra-dół i dół stosy połączeń mają pierwszeństwo przed innymi wynikami śledzenia. Możesz również włączyć następujące opcje, zaznaczając odpowiednie pole obok pola wyszukiwania:
    • Regex: aby włączyć wyrażenia regularne do wyszukiwania, Użyj tej opcji.
    • Dopasuj wielkość liter: jeśli w wyszukiwaniu uwzględniana jest wielkość liter, użyj tej opcji.

wskazówka: podczas sprawdzania osi czasu wątków dostępne są następujące skróty:

  • Powiększ: naciśnij W lub przewiń kółko myszy, przytrzymując Ctrl (polecenie na komputerze Mac).
  • Powiększ: naciśnij S lub przewiń kółko myszy do tyłu, przytrzymując Ctrl (polecenie na komputerze Mac).
  • Przesuń w lewo: Naciśnij A lub przeciągnij mysz w prawo trzymając spację.
  • Przesuń w prawo: Naciśnij D lub przeciągnij mysz w lewo trzymając spację.
  • rozwiń lub zwiń wątek: Kliknij dwukrotnie nazwę wątku lub naciśnij Enter, gdy wątek jest zaznaczony.

wybierz konfigurację nagrywania

przed rozpoczęciem nagrywania informacji śledzenia wybierz odpowiednią konfigurację nagrywania dla informacji profilowania, które chcesz przechwycić:

  • przykładowe metody Java: przechwytuje stos połączeń aplikacji w częstych odstępach czasu podczas wykonywania kodu w aplikacji Java. Program profiler porównuje zestawy przechwyconych danych, aby uzyskać informacje o czasie i zużyciu zasobów na temat wykonania kodu w Javie aplikacji.

    nieodłącznym problemem śledzenia opartego na próbkach jest to, że jeśli aplikacja wprowadzi metodę po przechwyceniu stosu wywołań i zakończy metodę przed następnym przechwyceniem, to wywołanie metody nie jest rejestrowane przez profiler. Jeśli interesuje Cię śledzenie metod o tak krótkim cyklu życia, powinieneś użyć śledzenia oprzyrządowanego.

  • Trace Java Methods: Ustawia aplikację w czasie wykonywania, aby nagrać znacznik czasu na początku i na końcu każdego wywołania metody. Znaczniki czasu są zbierane i porównywane do generowania danych śledzenia metod, w tym informacji o czasie i wykorzystaniu procesora.

    Należy zauważyć, że narzut związany z oprzyrządowaniem każdej metody wpływa na wydajność czasu pracy i może wpływać na profilowanie danych; jest to jeszcze bardziej zauważalne w przypadku metod o stosunkowo krótkich cyklach życia. Ponadto, jeśli aplikacja wykonuje dużą liczbę metod w krótkim czasie, profiler może szybko przekroczyć limit rozmiaru pliku i może nie być w stanie zarejestrować żadnych dalszych danych śledzenia.

  • przykładowe funkcje C / C++: przechwytuje próbki śladów natywnych wątków aplikacji. Aby użyć tej konfiguracji, musisz wdrożyć aplikację na urządzeniu z systemem Android 8.0 (API poziom 26) lub wyższym.

    wewnętrznie Ta konfiguracja używa simpleperf do śledzenia natywnego kodu aplikacji. Jeśli chcesz określić dodatkowe opcje dla simpleperf, takie jak próbkowanie konkretnych procesorów urządzenia lub określanie czasu trwania próbkowania z dużą dokładnością, możesz użyć simpleperf z wiersza poleceń.

  • śledzenie wywołań systemowych: przechwytuje drobnoziarniste szczegóły, które pozwalają sprawdzić, jak aplikacja współdziała z zasobami systemowymi. Możesz sprawdzać dokładne czasy i czasy trwania Stanów wątków, wizualizować wąskie gardła procesora we wszystkich rdzeniach i dodawać niestandardowe zdarzenia śledzenia do analizy. Takie informacje mogą mieć kluczowe znaczenie podczas rozwiązywania problemów z wydajnością. Aby użyć tej konfiguracji, musisz wdrożyć aplikację na urządzeniu z systemem Android 7.0 (API poziom 24) lub wyższym.

    korzystając z tej konfiguracji śledzenia, możesz wizualnie oznaczyć ważne procedury kodu na osi czasu profilera poprzez oprzyrządowanie kodu. Aby użyć kodu C / C++, użyj natywnego API śledzenia dostarczonego przez trace.h. Aby nadać kod Java, Użyj klasyTrace. Aby uzyskać więcej informacji, zobacz Instrument your app code.

    Ta konfiguracja śledzenia jest zbudowana nasystrace. Możesz użyć narzędzia wiersza poleceńsystrace, aby określić opcje poza tymi, które są dostępne w Profilerze procesora. Dodatkowe dane na poziomie systemu dostarczane przez systrace mogą pomóc w sprawdzaniu macierzystych procesów systemowych i rozwiązywaniu problemów z opuszczonymi lub opóźnionymi ramkami.

    na urządzeniach z systemem Android 9 (poziom API 28) lub wyższym, możesz użyć aplikacji systemowej o nazwie śledzenie systemu do rejestrowania śladów systemu na urządzeniu.

Tworzenie, Edycja lub wyświetlanie konfiguracji nagrywania

konfiguracje nagrywania można tworzyć, edytować i wyświetlać w oknie dialogowym nagrywanie procesora konfiguracje, które otwiera się, wybierając opcję Edytuj konfiguracje z menu rozwijanego konfiguracje nagrywania u góry profilera procesora.

aby wyświetlić ustawienia istniejącej konfiguracji nagrywania, wybierz ją w panelu Konfiguracja nagrywania procesora w oknie dialogowym.

aby utworzyć nową konfigurację nagrywania, wykonaj następujące czynności:

  1. kliknij Dodajw lewym górnym rogu okna dialogowego. Spowoduje to utworzenie nowej konfiguracji z ustawieniami somedefault.
  2. Nazwij swoją konfigurację.
  3. Wybierz technologię śledzenia.
  4. dla konfiguracji nagrywania próbek należy określić odstęp próbkowania w mikrosekundach (µs). Wartość ta przedstawia czas pomiędzy każdą próbką stosu wywołań Twojej aplikacji. Im krótszy określony interwał, tym szybciej osiągniesz limit rozmiaru pliku dla zarejestrowanych danych.
  5. Określ limit rozmiaru pliku, w megabajtach (MB), dla zarejestrowanych danych zapisanych na podłączonym urządzeniu. Po zatrzymaniu nagrywania AndroidStudio przetwarza te dane i wyświetla je w oknie profilera. Tak więc, jeśli zwiększysz limit i nagrasz dużą ilość danych, Android Studio zajmie więcej czasu na przeanalizowanie pliku i może przestać reagować.

    Uwaga :Jeśli używasz podłączonego urządzenia z systemem Android 8.0 (API poziom 26) lub nowszym, nie ma limitu rozmiaru pliku danych śledzenia, a wartość ta jest ignorowana. Jednak nadal musisz uważać na to, ile danychurządzenie zbiera po każdym nagraniu-Android Studio może mieć trudności z analizowaniem dużych plików śledzenia. Na przykład, jeśli nagrywasz sampledtrace z krótkim interwałem próbkowania lub oprzyrządowanym śladem, podczas gdy twoje aplikacje wywołują wiele metod w krótkim czasie, szybko wygenerujesz duże pliki śledzenia.

  6. aby zaakceptować zmiany i kontynuować wprowadzanie zmian w innych konfiguracjach,kliknij Zastosuj. Aby zaakceptować wszystkie wprowadzone zmiany i zamknąć okno dialogowe, kliknij przycisk.

Rejestruj aktywność procesora za pomocą interfejsu Debug API

Możesz użyć interfejsuDebug API, aby dać aplikacji możliwość rozpoczęcia i zatrzymania nagrywania aktywności procesora w Profilerze procesora.

Profiler procesora rozpoczyna nagrywanie,gdy aplikacja wywołujestartMethodTracing(String tracePath), a Profiler procesora zatrzymuje nagrywanie, gdy aplikacja wywołujestopMethodTracing(). Podczas rejestrowania aktywności procesora, która jest wyzwalana za pomocą tego API, profiler procesora pokazuje API debug jako aktywną konfigurację nagrywania procesora.

aby kontrolować rejestrowanie aktywności procesora za pomocąDebug API, zainstaluj swoją instrumentowaną aplikację na urządzeniu z systemem Android 8.0 (API poziom 26) lub wyższym.

ważne: Debug API jest przeznaczone do stosowania niezależnie od innych środków do uruchamiania i zatrzymywania nagrywania CPUactivity, takich jak przyciski w graficznym interfejsie użytkownika CPU Profiler i ustawienie w konfiguracji nagrywania do automatycznego nagrywania w appstartup.

ze względu na limit wielkości bufora wynoszący 8 MB, metoda startMethodTracing(String tracePath)w API Debug jest przeznaczona do krótkich interwałów lub scenariuszy, które są niezbędne do ręcznego uruchamiania/zatrzymywania nagrywania. W przypadku dłuższych okresów nagrywania używaj interfejsu profilera w Android Studio.

aby uzyskać więcej informacji, seeGenerate trace logs poprzez oprzyrządowanie aplikacji.

Rejestruj aktywność procesora podczas uruchamiania aplikacji

aby rozpocząć automatyczne nagrywanie aktywności procesora podczas uruchamiania aplikacji, wykonaj następujące czynności:

  1. wybierz Uruchom> Edytuj konfiguracje.
  2. na karcie Profilowanie zaznacz pole wyboru Rozpocznij nagrywanie metody podczas uruchamiania.
  3. wybierz konfigurację nagrywania PROCESORA z menu.
  4. kliknij Zastosuj.
  5. Uruchom aplikację na urządzeniu z systemem Android 8.0 (API poziom 26) lub wyższym, zaznaczając opcję Uruchom profil >.

Eksportuj ślady

Po zarejestrowaniu aktywności procesora za pomocą cpu profiler, możesz wyeksportować dane asa.trace plik, aby udostępnić je innym lub sprawdzić później.

aby wyeksportować plik śledzenia z osi czasu procesora, wykonaj następujące czynności:

  1. na osi czasu procesora kliknij prawym przyciskiem myszy nagrany ślad metody lub ślad systemu, który chcesz wyeksportować.
  2. Wybierz Export trace z menu.
  3. przejdź do miejsca, w którym chcesz zapisać plik, podaj nazwę pliku i kliknij przycisk.

aby wyeksportować plik śledzenia z panelu sesje, wykonaj następujące czynności:

  1. w panelu sesje kliknij prawym przyciskiem myszy nagrany ślad, który chcesz wyeksportować.
  2. kliknij przycisk Eksportuj metodę śledzenia lub Eksportuj system śledzenia na końcu wpisu sesji.
  3. przejdź do miejsca, w którym chcesz zapisać plik, podaj nazwę pliku i kliknij przycisk.

Importuj ślady

możesz zaimportować.trace pliki utworzone za pomocąDebug API lub CPU Profiler.

zaimportuj plik śledzenia, klikając Rozpocznij nową sesję profilera w panelu sesje profilera, a następnie wybierając Load from file.

Możesz sprawdzić importowany ślad w CPU Profiler tak samo, jak to robisz z śladami przechwyconymi bezpośrednio w CPU Profiler, z następującymi wyjątkami:

  • aktywność procesora nie jest reprezentowana wzdłuż osi czasu procesora (z wyjątkiem śledzenia systemu).
  • oś czasu w sekcji wątki nie pokazuje Stanów wątku, takich jak uruchamianie, oczekiwanie lub uśpienie (z wyjątkiem śledzenia systemowego).

Inspect traces

widok śledzenia w Profilerze procesora zapewnia kilka sposobów przeglądania informacji z zarejestrowanych śladów.

w przypadku śladów metod i śladów funkcji, możesz wyświetlić wykres wywołania bezpośrednio na osi czasu wątków i wykresie płomienia, z góry na dół i z góry na karty z panelu Analiza. W przypadku śladów systemowych można przeglądać zdarzenia śledzenia bezpośrednio na osi czasu wątków i wykresie gry, z góry na dół i z dołu w zakładkach Analysispane.

skróty myszy i klawiatury są dostępne do łatwej nawigacji Wykresów połączeń lub śledzenia zdarzeń.

Sprawdź ślady za pomocą wykresu wywołania

Wykres wywołania zapewnia graficzną reprezentację metody trace orfunction trace, gdzie okres i czas wywołania są reprezentowane na osi horizontal, a jego wywołania są wyświetlane wzdłuż osi pionowej. Połączenia API systemu są wyświetlane w kolorze pomarańczowym, połączenia do własnych metod aplikacji są wyświetlane na ekranie, a połączenia do interfejsów API innych firm (w tym interfejsów API języka Java) są wyświetlane w Kolorze Niebieskim. Rysunek 4 pokazuje przykładowy wykres wywołania i ilustruje pojęcie czasu własnego, czasu dzieci i całkowitego czasu dla danej metody lub funkcji. Możesz dowiedzieć się więcej o tych pojęciach w sekcji o tym, jak wykrywać ślady za pomocą odgórnego i oddolnego.

Rysunek 4. Przykładowy wykres wywołania, który ilustruje siebie, dzieci i całkowity czas dla metody D.

Wskazówka: Aby przeskoczyć kod źródłowy metody lub funkcji, kliknij go prawym przyciskiem myszy i wybierz opcję Przeskocz do źródła. Działa to z dowolnej karty Panelu analizy.

sprawdzaj ślady za pomocą zakładki Wykres płomienia

zakładka Wykres płomienia zapewnia odwrócony Wykres połączeń, który agreguje stosy połączeń. Oznacza to, że identyczne metody lub funkcje, które współdzielą tę samą sekwencję wywołujących, są zbierane i reprezentowane jako jeden dłuższy słupek na wykresie płomienia (zamiast wyświetlać je jako wiele krótszych słupków, jak pokazano na wykresie Call). Ułatwia to sprawdzenie, które metody lub funkcje zużywają najwięcej czasu. Oznacza to jednak również, że oś pozioma nie reprezentuje linii czasowej; zamiast tego wskazuje względną ilość czasu, jaki każda metoda lub funkcja potrzebuje do wykonania.

aby zilustrować tę koncepcję, rozważ Wykres połączeń na rysunku 5. Ta metoda d wykonuje wiele wywołań do B (B1, B2 i B3), a niektóre z tych wywołań do B wykonują połączenie do C (C1 i C3).

Rysunek 5. Wykres połączeń z wieloma wywołaniami metod, które mają wspólną sekwencję wywołań.

ponieważ B1, B2 i B3 mają tę samą sekwencję wywołań (A → D → B), są one agregowane, jak pokazano na rysunku 6. Podobnie, C1 i C3 są agregowane, ponieważ mają taką samą sekwencję wywołujących (A → D → B → C); zauważ, że C2 nie jest wliczany, ponieważ ma inną sekwencję wywołujących (A → D → C).

Rysunek 6. Agregowanie identycznych metod, które współdzielą ten sam stos wywołań.

zagregowane wywołania są używane do tworzenia wykresu płomienia, jak pokazano na rysunku 7.Zauważ, że dla każdego wywołania na wykresie płomienia najpierw pojawiają się wywołania, które zużywają najwyższy czas procesora.

Rysunek 7. Wykres płomienia przedstawia schemat wywołania pokazany na rysunku 5.

Sprawdź ślady używając Top Down i Bottom Up

Zakładka Top Down wyświetla listę wywołań, w których rozszerzenie węzła orfunction wyświetla jego wywołania. Rysunek 8 przedstawia Wykres z góry na dół dla wykresu połączeń na rysunku 4. Każda strzałka na wykresie wskazuje od dzwoniącego do dzwoniącego.

jak pokazano na fig.8, rozszerzenie węzła dla metody a w zakładce z góry na dół wyświetla jego wołania, metody B i D. Następnie rozszerzenie węzła dla metodyd ujawnia jego wołania, metody B I C i tak dalej. Podobnie jak w przypadku Flame charttab, top down tree agreguje informacje o identycznych metodach, które mają ten sam stos wywołań. Oznacza to, że karta wykres płomienia zapewnia graficznąreprezentację karty z góry na dół.

Zakładka z góry na dół zawiera następujące informacje, które pomagają opisać czas CPUtime spędzony przy każdym wywołaniu (czasy są również reprezentowane jako procent całkowitego czasu thread w wybranym zakresie):

  • Self: czas, w którym wywołanie metody lub funkcji spędziło wykonując swój własny kod, a nie jego wywołania, jak pokazano na rysunku 4 dla metody D.
  • Dzieci: Czas, w którym wywołanie metody lub funkcji spędziło wykonując swoje wywołania, a nie własny kod, jak pokazano na rysunku 4 dla metody D.
  • Total: suma czasu jaźni i dzieci metody. To przedstawia całkowity czas, jaki aplikacja spędziła na wywołaniu, jak pokazano infigure 4 dla metody D.

Rysunek 8. Drzewo z góry.

Rysunek 9. Drzewo od dołu do góry dla metody C z fig. 8.

Zakładka Bottom Up wyświetla listę wywołań, w których rozszerzenie węzła ormethod wyświetla jego wywołania. Korzystając z przykładowego śladu pokazanego na fig. 8, fig. 9 przedstawia bottom up tree dla metody C. Otwarcie węzła dla metody Cin bottom up tree wyświetla każdy z jego unikalnych wywołań, metod B i D. Notethat, chociaż B wywołuje C dwa razy, b pojawia się tylko raz, gdy rozszerza węzeł formethod C w bottom up tree. Następnie rozszerzenie węzła dla B wyświetla jego wywołanie, metody a i D.

Zakładka Bottom Up jest przydatna do sortowania metod lub funkcji według tych, które zużywają najwięcej (lub najmniej) czasu procesora. Możesz sprawdzić każdy węzeł, aby określić, które wywołujące spędzają najwięcej czasu CPU na wywoływaniu tych metod lub funkcji.W porównaniu z top down tree, informacja o czasie dla każdej metody lub funkcji w abottom up tree jest w odniesieniu do metody na górze każdego drzewa (górny węzeł).Czas procesora jest również reprezentowany jako procent całkowitego czasu wątku podczas nagrywania. Poniższa tabela pomaga wyjaśnić, jak interpretować timinginformation dla górnego węzła i jego wywołujących (pod-węzłów).

jaźń dzieci razem
metoda lub funkcja w górnej części Dolnego drzewa (górny węzeł) przedstawia całkowity czas, przez jaki metoda lub funkcja wykonywała swój własny kod, a nie jego wywołania. W porównaniu z drzewem top down, ta informacja o czasie stanowi sumę wszystkich wywołań tej metody lub funkcji w czasie trwania nagrania. przedstawia całkowity czas, przez jaki metoda lub funkcja wykonywała swoje wywołania, a nie własny kod. W porównaniu z drzewem top down, ta informacja o czasie reprezentuje sumę wszystkich wywołań tej metody lub funkcji w czasie trwania nagrania. suma czasu własnego i czasu dzieci.
Callers (sub-nodes) reprezentuje całkowity czas własny wywołania wywołującego. Używając dolnego drzewa na rysunku 9 jako przykładu, czas własny dla metody B byłby równy sumie czasów własnych dla każdego wykonania metody C, gdy jest wywoływany przez B. reprezentuje całkowity czas potomny wywołania wywołującego. 9 jako przykład, Czas Dzieci Dla metody B będzie równy sumie czasów dzieci dla każdego wykonania metody C, gdy zostanie wywołana przez B. suma czasu własnego i czasu dzieci.

Uwaga: Dla danego nagrania Android Studio przestaje gromadzić nowe dane, gdy profiler osiągnie limit rozmiaru pliku (nie zatrzymuje to jednak zamówienia). Zazwyczaj dzieje się to znacznie szybciej podczas wykonywania narzędziowych śladów, ponieważ ten rodzaj śledzenia gromadzi więcej danych w krótkim czasie, w porównaniu do próbki śladu. Jeśli przedłużysz czas inspekcji na okres nagrywania, który wystąpił po osiągnięciu limitu, dane czasowe w okienku śledzenia nie ulegną zmianie (ponieważ nie są dostępne żadne nowe dane). Ponadto panel śledzenia wyświetla NaN dla informacji o czasie, gdy wybierzesz tylko część nagrania, która nie ma dostępnych danych.

sprawdzanie śladów systemu

podczas sprawdzania śladu systemu można sprawdzić zdarzenia śledzenia na osi czasu theThreads, aby wyświetlić szczegóły zdarzeń występujących w każdym wątku.Najedź kursorem myszy na zdarzenie, aby zobaczyć jego nazwę i czas spędzony w każdym stanie. Kliknij zdarzenie, aby zobaczyć więcej informacji w okienku analizy.

panel rdzeni procesora (jak pokazano na rysunku 10) pokazuje zaplanowaną aktywność wątku na każdym rdzeniu. Najedź kursorem myszy na aktywność wątku,aby zobaczyć, który z tych wątków jest uruchomiony w danym momencie.

Przeglądanie aktywności CPU i śledzenia zdarzeń dla wątku renderowania.

aby uzyskać dodatkowe informacje na temat śledzenia systemu kontroli, zobacz sekcję problemów z wydajnością interfejsu użytkownika w dokumentacjisystrace.

Sprawdź dane renderowania klatek

Możesz sprawdzić, ile czasu zajmuje Twojej aplikacji renderowanie każdej klatki na mainthread i RenderThread, aby zbadać wąskie gardła, które powodują UI Jankes i lowframes.

aby zobaczyć dane renderowania klatek,Nagraj ślad za pomocą konfiguracji, która umożliwia śledzenie wywołań systemowych. Po nagraniu ścieżki poszukaj informacji o każdej klatce pod osią czasu klatek w sekcji wyświetlania, jak pokazano na rysunku 11.

Rysunek 11. Każda klatka, która zajmuje więcej niż 16m jest wyświetlana na Czerwono.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.