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ądra
- atracena potrzeby adnotacji do przestrzeni użytkownika w usługach i aplikacjach
- heapprofdna 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 | | perfettonatychmiast 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 IncidentReportConfigw konfiguracji logu czasu proto. | 
| --no-guardrails | Wyłącza ochronę przed nadmiernym wykorzystaniem zasobów po włączeniu
     Flaga --uploadpodczas 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 prototracing_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 1mokreś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 perfettouż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 zdarzeniasched/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 perfettoanalizuje plik konfiguracyjny jakopbtxt. 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.
