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:
ftrace
w celu uzyskania informacji z jądraatrace
na potrzeby adnotacji do przestrzeni użytkownika w usługach i aplikacjachheapprofd
na 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 odatrace
iftrace
.
Opcje ogólne
W tabeli poniżej znajdziesz opcje dostępne, gdy używasz pola perfetto
w jednym z tych elementów:
tryb:
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:
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ń:
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:
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_switch
sched/sched_wakeup
sched/sched_wakeup_new
sched/sched_process_exec
sched/sched_process_exit
sched/sched_process_fork
sched/sched_process_free
sched/sched_process_hang
sched/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.