Testy wydajności

Wydajność aplikacji w czasie działania można podzielić na testy lokalne i testy w warunkach rzeczywistych. Pamiętaj, że oba te obszary dają różne wyniki i dane. Dopóki wyniki są jednoznaczne, odchylenia są dopuszczalne.

Testowanie w warunkach rzeczywistych

Testy terenowe pomagają zrozumieć, jak aplikacja działa w rzeczywistych warunkach. To ważna kwestia, która pomaga sprawdzać skuteczność aplikacji w terenie. Aby uzyskać dane o użytkownikach, możesz użyć narzędzi takich jak Google Play VitalsFirebase Performance Monitoring.

Aby dodać punkty śledzenia, które zapewniają więcej kontekstu i wglądów w dane pól, możesz użyć biblioteki AndroidX Tracing.

Możesz też użyć zdarzeń ApplicationStartInfoApplicationExitInfo, aby uzyskać bardziej szczegółowe informacje o uruchamianiu i zamykaniu aplikacji przez użytkowników.

Biblioteka AndroidX JankStats umożliwia agregowanie i raportowanie spowolnionych oraz utraconych klatek na potrzeby dalszej analizy.

Testowanie lokalne

Aby przetestować lokalnie wydajność aplikacji w czasie działania, udostępniamy bibliotekę porównawczą. Podzieliliśmy go na bibliotekę macrobenchmark, która służy do testowania skuteczności całych przepływów użytkowników, oraz bibliotekę microbenchmark wykorzystywaną do analizowania wydajności pętli „hot loop” aplikacji lub biblioteki.

Wszystkie testy wydajności powinny być przeprowadzane na urządzeniu fizycznym. Jest to jedyny sposób na upewnienie się, że mierzona wydajność jest rzeczywistą wydajnością na urządzeniu. Testy wydajności w czasie działania będą dawać różne wyniki w zależności od urządzenia, na którym są przeprowadzane, oraz od jego obciążenia.

Wydajność aplikacji może się pogorszyć. Aby uniknąć regresji, należy często przeprowadzać testy wydajności. W idealnej sytuacji aplikacja jest sprawdzana po każdym dodaniu nowej funkcji lub scaleniu kodu z gałęzią główną. Najważniejszym elementem monitorowania wydajności jest analiza porównawcza kandydatów do wersji i sprawdzenie, czy czas uruchomienia i czas renderowania klatek nie regresują w przypadku głównych ścieżek użytkowników. Zalecamy uruchamianie testów porównawczych zawsze, gdy jest to możliwe, np. przed scaleniem funkcji z gałązi głównej lub w przypadku kompilacji nocnych.

Korzystanie z wyników

Testowanie wydajności to proces ciągły. Zalecamy przechowywanie wyników testów wydajności w taki sposób, aby można je było porównywać w czasie.

Wyniki testów wydajności możesz wykorzystać na kilka sposobów.

  • Poprawianie skuteczności – korzystaj z wyników pomiarów, aby ustalać priorytety w procesie poprawy skuteczności
  • Zapobieganie regresji – sprawdź, czy nowe wersje nie powodują spadku wydajności.
  • Monitorowanie w produkcji – sprawdzanie, czy występują problemy, których nie widać podczas tworzenia

Więcej informacji o testowaniu wydajności w czasie działania Androida znajdziesz w przewodniku dotyczącym wydajności aplikacji.