perfetto to narzędzie, które pozwala gromadzić informacje o skuteczności
Urządzenia z Androidem przez
Android Debug Bridge (ADB). Wywołaj metodę
Narzędzie perfetto za pomocą polecenia adb shell perfetto ....
perfetto używa różnych
źródła danych do zbierania danych na temat wydajności z urządzenia, takie jak:
ftracew celu uzyskania informacji z jądraatracena potrzeby adnotacji do przestrzeni użytkownika w usługach i aplikacjachheapprofdna potrzeby informacji o wykorzystaniu pamięci natywnej przez usługi i aplikacje
Na tej stronie dowiesz się, jak wywołać funkcję perfetto i skonfigurować ją do generowania
potrzebne dane wyjściowe. Więcej informacji można znaleźć w
dokumentacja perfetto.
Składnia
W tej sekcji dowiesz się, jak używać ADB do wywoływania funkcji perfetto w różnych trybach
i wygenerować log czasu.
Wybór źródła danych
Funkcja perfetto obejmuje 2 rodzaje trybów określających źródła danych
wykorzystuje do rejestrowania Twojego logu czasu:
- tryb uproszczony: można wybrać tylko podzbiór źródeł danych, w szczególności
atrace. iftrace. Oferuje on jednak interfejs podobny dosystrace - tryb normalny: pobiera konfigurację w buforze protokołu i umożliwia
wykorzystaj więcej funkcji usługi
perfetto, używając różnych źródeł danych odatraceiftrace.
Opcje ogólne
W tabeli poniżej znajdziesz opcje dostępne, gdy używasz pola perfetto w jednym z tych elementów:
tryb:
Tabela 1. Lista dostępnych ogólnych narzędzia perfetto.
| Option | Opis |
|---|---|
--background |
|
perfetto natychmiast opuszcza interfejs wiersza poleceń i kontynuuje
oraz rejestrować ślady w tle. |
--background-wait | -D
|
Podobne do: --background, ale czeka (do 30 s) na wszystkie
źródła danych, aby uruchomić je przed zamknięciem. Zamknij
jeśli udane potwierdzenie to
odebrane i w przeciwnym razie ma wartość różną od zera (błąd lub przekroczenie limitu czasu).
|
--alert-id
|
Identyfikator alertu, który uruchomił ten log czasu. |
--config-id
|
Identyfikator konfiguracji aktywującej. |
--config-uid
|
Identyfikator UID aplikacji, która zarejestrowała konfigurację. |
--subscription-id
|
Identyfikator subskrypcji, która aktywowała ten log czasu. |
--out OUT_FILE |
|
Określa ścieżkę do wyjściowego pliku śledzenia lub Uwaga: musisz podać pełną nazwę ścieżki
. Pliki powinny być zazwyczaj zapisywane w
Folder |
--upload
|
Po zakończeniu przekazuje ślad do pakietu określonego przez
Komunikat IncidentReportConfig w konfiguracji logu czasu proto. |
--no-guardrails
|
Wyłącza ochronę przed nadmiernym wykorzystaniem zasobów po włączeniu
Flaga --upload podczas testowania. |
--reset-guardrails
|
Resetuje trwały stan barier i wyjść do testów. |
--rsave-for-bugreport
|
Jeśli log czasu z bugreport_score > 0 jest uruchomiony,
zapisze ślad w pliku. Po zakończeniu przekazuje ścieżkę na wyjściu.
|
--query
|
Odpytuje stan usługi i drukuje go jako tekst zrozumiały dla człowieka. |
--query-raw
|
Podobne do --query, ale drukuje nieprzetworzone bajty proto
tracing_service_state.proto. |
--help | -h
|
Drukuje tekst pomocy do narzędzia perfetto.
|
Tryb jasny
Ogólna składnia funkcji perfetto w trybie jasnym jest następująca:
adb shell perfetto [ --time TIMESPEC ] [ --buffer SIZE ] [ --size SIZE ]
[ ATRACE_CAT | FTRACE_GROUP/FTRACE_NAME | FTRACE_GROUP/* ]...
--out FILE
W tabeli poniżej znajdziesz opcje dostępne w przypadku użycia funkcji perfetto w
tryb jasny:
Tabela 2. Lista dostępnych perfetto
opcji narzędzi w trybie jasnym.
| Option | Opis |
|---|---|
--time TIME[s|m|h] |
|
Określa czas trwania logu czasu w sekundach, minutach lub godzinach.
Na przykład --time 1m określa czas śledzenia wynoszący 1 minutę.
Domyślny czas trwania to 10 sekund.
|
--buffer SIZE[mb|gb] |
|
Określa rozmiar bufora pierścienia w megabajtach (MB) lub gigabajtach (GB).
Domyślny parametr to --buffer 32mb.
|
--size SIZE[mb|gb] |
|
Określa maksymalny rozmiar pliku w megabajtach (MB) lub gigabajtach (GB). Według
domyślnie perfetto używa tylko bufora dzwonka w pamięci.
|
--app | -a
|
Nazwa aplikacji na Androida (atrace) |
Obok tych opcji znajduje się lista specyfikatorów zdarzeń:
Tabela 3. Lista specyfikatorów zdarzeń dotyczących tryb jasny.
| Wydarzenie | Opis |
|---|---|
| ATRACE_CAT |
Określa kategorie atrace, dla których chcesz rejestrować log czasu.
Na przykład to polecenie śledzi Menedżera okien za pomocą atrace:
adb shell perfetto --out FILE wm
Aby zarejestrować inne kategorie, zobacz
lista
z |
| FTRACE_GROUP/FTRACE_NAME |
Określa zdarzenia ftrace, dla których chcesz rejestrować log czasu.
Na przykład to polecenie śledzi zdarzenia sched/sched_switch:
adb shell perfetto --out FILE sched/sched_switch
|
Tryb normalny
Ogólna składnia funkcji perfetto w trybie normalnym jest taka:
adb shell perfetto [ --txt ] --config CONFIG_FILE --out FILE
W tabeli poniżej znajdziesz opcje dostępne w przypadku użycia funkcji perfetto w
tryb normalny:
Tabela 4. Lista dostępnych perfetto
i opcjami narzędzi w trybie normalnym.
| Option | Opis |
|---|---|
--config CONFIG_FILE | -c CONFIG_FILE
|
Określa ścieżkę do pliku konfiguracji. W trybie normalnym niektóre
Konfiguracje mogą być kodowane w buforze protokołu konfiguracji. Ten plik
musi być zgodny ze schematem bufora protokołu zdefiniowanym w
AOSP trace_config.proto.
Wybierz i skonfiguruj źródła danych za pomocą
|
--txt
|
Powoduje, że perfetto analizuje plik konfiguracyjny jako pbtxt. Ten
jest przeznaczona tylko do lokalnych testów i nie zalecamy
i udostępnić go w środowisku produkcyjnym. |
Obsługiwane źródła danych
W tej sekcji opisujemy różne źródła używane przez perfetto do generowania danych
Twojego śladu.
Ftrace
Źródło danych ftrace umożliwia usłudze perfetto pobieranie zdarzeń z jądra.
Włącz to źródło za pomocą ustawienia
ftrace_config
w sekcji DataSourceConfig.
Dostępne są m.in. te zdarzenia:
-
sched/sched_switchsched/sched_wakeupsched/sched_wakeup_newsched/sched_process_execsched/sched_process_exitsched/sched_process_forksched/sched_process_freesched/sched_process_hangsched/sched_process_wait
Zdarzenia w systemie plików:
W zależności od urządzenia, wersji systemu operacyjnego lub jądra systemu może być więcej zdarzeń i dostępności informacji. Więcej informacji znajdziesz w artykule dotyczącym konfiguracji w konfiguracji.
Statystyki procesów
Źródło danych statystyk procesów umożliwia otrzymywanie ankietowanych liczników dotyczących i poszczególnych procesów.
Włącz to źródło przez ustawienie process_stats_config
i sys_stats_config
w sekcji DataSourceConfig.
Dane generowane przez funkcję perfetto obejmują:
-
/proc/meminfo/proc/vmstat/proc/stat
-
/proc/\<pid\>/status/proc/\<pid\>/oom_score_adj
W zależności od urządzenia, wersji systemu operacyjnego i jądra systemu może być więcej zdarzeń
i dostępności informacji. Więcej informacji znajdziesz na stronie konfiguracji sys_stats.
i process_stats.
heapprofd
heapprofd umożliwia próbkowanie przyczyn użycia pamięci natywnej.
Włącz to źródło przez ustawienie heapprofd_config
w sekcji DataSourceConfig. To ustawienie powoduje utworzenie ProfilePackets,
włącznie z ramkami Java protokołu wywołań.
Dodatkowe informacje na temat korzystania z usługi heapprofd znajdziesz na stronie
perfetto.dev
Inne źródła
W zależności od urządzenia, wersji systemu operacyjnego i jądra systemu może być więcej źródeł danych i dostępności informacji. Aby dowiedzieć się więcej, zapoznaj się z protos konfiguracji źródła danych.
Dodatkowe informacje na temat perfetto można znaleźć na stronie
perfetto.dev.