Sprawdzanie aktywności procesora za pomocą programu profilującego procesora

Optymalizacja wykorzystania procesora przez aplikację ma wiele zalet, np. szybsze i bezproblemowe działanie urządzenia oraz czas pracy na baterii.

Możesz używać programu CPU Profiler do sprawdzania w czasie rzeczywistym wykorzystania procesora i wątków przez aplikację podczas korzystania z niej. Możesz też sprawdzać szczegóły zapisanych śladów metod, logów czasu funkcji i śladów systemu.

Szczegółowe informacje, które rejestruje i wyświetla program profilujący procesora, zależą od wybranej konfiguracji nagrywania:

  • Śledzenie systemu: rejestruje szczegółowe informacje, które umożliwiają sprawdzenie interakcji aplikacji z zasobami systemowymi.
  • Śledzenie metod i funkcji: w przypadku każdego wątku w procesie aplikacji możesz sprawdzić, które metody (Java) lub funkcje (C/C++) są wykonywane w danym okresie, a także zasoby procesora zużywane przez każdą z tych metod lub funkcji. Do identyfikowania wywołań i wywołań możesz też używać logów czasu metod i funkcji. Element wywołujący to metoda lub funkcja, która wywołuje inną metodę lub funkcję, a wywołanie to metoda, która jest wywoływana przez inną metodę lub funkcję. Na podstawie tych informacji możesz określić, które metody lub funkcje zbyt często wywołują określone zadania wymagające dużej ilości zasobów, i zoptymalizować kod aplikacji, aby uniknąć niepotrzebnej pracy.

    Podczas rejestrowania logów czasu metody możesz wybrać nagranie próbkowane lub instrumentowane. Podczas rejestrowania logów czasu funkcji możesz używać tylko nagrania próbkowanego.

Szczegółowe informacje o korzystaniu i wyborze każdej z tych opcji śledzenia znajdziesz w artykule Wybieranie konfiguracji rejestrowania.

Omówienie programu profilującego procesora

Aby otworzyć program profilujący procesora, wykonaj te czynności:

  1. Wybierz Widok > Okna narzędzi > Program profilujący lub kliknij Profil na pasku narzędzi.

    Jeśli pojawi się okno Wybierz cel wdrożenia, wybierz urządzenie, na którym chcesz wdrożyć aplikację w celu profilowania. Jeśli urządzenie, które podłączysz przez USB, nie ma go na liście, sprawdź, czy debugowanie USB jest włączone.

  2. Kliknij dowolne miejsce na osi czasu CPU, aby otworzyć program profilujący CPU.

Gdy otworzysz program CPU Profiler, natychmiast zacznie wyświetlać informacje o użyciu procesora i aktywności wątków przez aplikację. Powinno ono wyglądać podobnie do tego na Rysunku 1.

Rysunek 1. Osie czasu w programie profilującym procesora.

Jak zaznaczono na Rysunku 1, domyślny widok programu profilującego procesora obejmuje te ramy czasowe:

  1. Oś czasu zdarzenia: pokazuje działania w aplikacji w miarę ich przechodzenia przez różne stany w trakcie cyklu życia oraz wskazuje interakcje użytkownika z urządzeniem, w tym zdarzenia obrotu ekranu. Informacje o włączaniu osi czasu zdarzeń na urządzeniach z Androidem 7.1 (poziom interfejsu API 25) lub starszym znajdziesz w artykule o włączaniu profilowania zaawansowanego.
  2. Oś czasu procesora:pokazuje wykorzystanie procesora przez aplikację w czasie rzeczywistym (jako odsetek całkowitego dostępnego czasu procesora) oraz łączną liczbę wątków używanych przez aplikację. Oś czasu pokazuje też wykorzystanie procesora przez inne procesy (takie jak procesy systemowe lub inne aplikacje), dzięki czemu możesz porównać te dane z wykorzystaniem aplikacji. Historyczne dane o wykorzystaniu procesora możesz sprawdzać, poruszając myszą wzdłuż poziomej osi osi czasu.
  3. Oś czasu aktywności w wątkach: wyświetla każdy wątek w procesie aplikacji i przedstawia jego aktywność na osi czasu, używając wymienionych poniżej kolorów. Po zarejestrowaniu logu czasu możesz wybrać wątek z tej osi czasu, aby sprawdzić jego dane w panelu śledzenia.
    • Zielony: wątek jest aktywny lub gotowy do użycia procesora. Oznacza to, że jest uruchomiona lub wykonywana.
    • Żółty: wątek jest aktywny, ale czeka na operację wejścia-wyjścia (na przykład na dysku lub w sieci), zanim zakończy swoje działanie.
    • Szary: wątek jest uśpiony i nie zużywa czasu procesora. Ten błąd może wystąpić, gdy wątek wymaga dostępu do zasobu, który nie jest jeszcze dostępny. Wątek przechodzi w tryb dobrowolnego uśpienia albo jądro uśpa wątek, dopóki wymagany zasób nie będzie dostępny.

    Program profilujący procesora raportuje też wykorzystanie procesora przez wątki, które Android Studio i platforma Androida dodają do procesu aplikacji, takie jak JDWP, Profile Saver, Studio:VMStats, Studio:Perfa i Studio:Heartbeat (chociaż dokładne nazwy wyświetlane na osi czasu aktywności wątków mogą się różnić). Android Studio raportuje te dane, dzięki czemu możesz sprawdzić, kiedy kod Twojej aplikacji faktycznie powoduje aktywność w wątkach i wykorzystanie procesora.