Dane to główny typ informacji wyodrębnianych z testów porównawczych. Ta
są przekazywane do funkcji measureRepeated
jako funkcji List
, która umożliwia określenie
wiele mierzonych danych jednocześnie. Wymagany jest co najmniej 1 typ danych:
testami porównawczymi.
Ten fragment kodu przechwytuje czas renderowania klatki i sekcję niestandardowego śledzenia dane:
benchmarkRule.measureRepeated( packageName = TARGET_PACKAGE, metrics = listOf( FrameTimingMetric(), TraceSectionMetric("RV CreateView"), TraceSectionMetric("RV OnBindView"), ), iterations = 5, // ... )
benchmarkRule.measureRepeated( TARGET_PACKAGE, // packageName Arrays.asList( // metrics new StartupTimingMetric(), new TraceSectionMetric("RV CreateView"), new TraceSectionMetric("RV OnBindView"), ), 5, // Iterations // ... );
W tym przykładzie RV CreateView
i RV OnBindView
to identyfikatory bloków z możliwością śledzenia zdefiniowanych w RecyclerView
. Kod źródłowy metody createViewHolder()
jest przykładem definiowania bloków umożliwiających śledzenie w Twoim kodzie.
StartupTimingMetric
,
TraceSectionMetric
,
FrameTimingMetric
i
PowerMetric
są omawiane szczegółowo w dalszej części tego dokumentu.
Wyniki testów porównawczych są wyświetlane w Android Studio, jak pokazano na rysunku 1. Jeśli zdefiniujesz kilka rodzajów danych, wszystkie zostaną połączone w wyniku.

TraceSectionMetric
i
FrameTimingMetric
.StartupTimingMetric
StartupTimingMetric
rejestruje dane o czasie uruchamiania aplikacji za pomocą tych wartości:
timeToInitialDisplayMs
: czas, przez który system odbiera intencję uruchomienia, gdy renderuje pierwszą klatkę miejsca docelowego.Activity
timeToFullDisplayMs
: Czas od momentu, gdy system otrzyma intencję uruchomienia, do momentu, gdy aplikacja zgłosi, że jest w pełni narysowana, za pomocą metodyreportFullyDrawn()
. Pomiar kończy się po zakończeniu renderowania pierwszej klatki po wywołaniu funkcjireportFullyDrawn()
lub zawierającym to wywołanie. Ten pomiary mogą być niedostępne na Androidzie 10 (poziom interfejsu API 29) i starszych wersjach.
StartupTimingMetric
zwraca wartości minimalną, medianę i maksymalną z iteracji uruchamiania. Aby ocenić poprawę po uruchomieniu, należy skupić się na wartościach mediany,
bo zapewniają najlepszy czas na
szacowanie typowego czasu uruchamiania. Więcej
informacje na temat tego, co wpływa na czas uruchamiania aplikacji, zapoznaj się z sekcją Uruchamianie aplikacji
.

StartupTimingMetric
wyniku z grupy Metryka czasu renderowania klatki
FrameTimingMetric
przechwytuje informacje o czasie z klatek wygenerowanych w ramach testu, np.
przewijanie lub animacja i zwraca te wartości:
frameOverrunMs
: czas, przez jaki dane klatka nie mieszczą się w terminie. Dodatnie liczby oznaczają porzucenie klatki i widoczne zakłócenia lub zacinanie się. Wartości ujemne wskazują, o ile szybciej klatka została wyrenderowana niż termin. Uwaga: ta funkcja jest dostępna tylko na Androidzie 12 (poziom interfejsu API 31) i nowszych.frameDurationCpuMs
: czas potrzebny na utworzenie klatki, z CPU zarówno w wątku UI, jak iRenderThread
.
Te pomiary są zbierane w rozkładzie 50, 90, 95 i 99 centyla.
Więcej informacji o identyfikowaniu i poprawianiu spowolnionych klatek znajdziesz w artykule Wydajne renderowanie.

FrameTimingMetric
wyniku z grupy Wskaźnik sekcji TraceSection
TraceSectionMetric
przechwytuje, ile razy sekcja logu czasu pasuje do podanej wartości sectionName
oraz ile to czasu zajmuje. W przypadku czasu zwraca minimalny, średni i maksymalny czas w milisekundach. Sekcja śledzenia jest definiowana przez wywołanie funkcji trace(sectionName)
lub kod między Trace.beginSection(sectionName)
a Trace.endSection()
lub ich wersjami asynchronicznymi. Zawsze wybiera pierwsze wystąpienie sekcji logu czasu
zarejestrowane podczas pomiaru. Generuje tylko sekcje logu czasu z Twojego pakietu
domyślnie; uwzględnij procesy spoza pakietu, ustaw
targetPackageOnly = false
Więcej informacji o śledzeniu znajdziesz w omówieniu systemu śledzenie i Zdefiniuj niestandardowy zdarzeń.

TraceSectionMetric
.PowerMetrics
PowerMetric
ujęć
zmiany mocy lub energii w trakcie testu dla podanej
kategoriach energii.
Każda wybrana kategoria jest dzielona na mierzalne podelementy, a niewybrane kategorie są dodawane do danych „Niewybrane”.
Te dane dotyczą zużycia w całym systemie, a nie zużycia w poszczególnych aplikacjach. Są one dostępne tylko na urządzeniach Pixel 6, Pixel 6 Pro i nowszych:
power<category>Uw
: ilość energii zużytej w czasie testu w danej kategorii.energy<category>Uws
: ilość energii przesłanej w jednostce czasu przez jak długo trwa test w danej kategorii.
Kategorie te to:
CPU
DISPLAY
GPU
GPS
MEMORY
MACHINE_LEARNING
NETWORK
UNCATEGORIZED
W przypadku niektórych kategorii, takich jak CPU
, podzielenie pracy według
z innych procesów wykonywanych w Twojej aplikacji. Aby zminimalizować zakłócenia,
usunąć lub ograniczyć niepotrzebne aplikacje i konta.

PowerMetric
wyniku z grupy Obecnie nie ma rekomendacji.
Zaloguj się na swoje konto Google.