Test porównawczy to sposób na sprawdzanie i monitorowanie wydajności aplikacji. Ty mogą regularnie przeprowadzać testy porównawcze, aby analizować i debugować problemy ze skutecznością upewnij się, że w ostatnich zmianach nie doszło do regresji.
Android udostępnia 2 biblioteki porównawcze i metody analizowania i testowania różnych rodzajów sytuacji w aplikacji: Macrobenchmark i Microbenchmark.
Macrobenchmark
Biblioteka Macrobenchmark umożliwia pomiar większych interakcji użytkowników, takich jak: uruchamianie, interakcję z interfejsem użytkownika i animacje. Biblioteka zapewnia bezpośrednią kontrolę nad środowiskiem wydajności, które testujesz. Pozwala kontrolować i umożliwia uruchamianie i zatrzymywanie aplikacji, aby bezpośrednio mierzyć jej działanie uruchamianie lub przewijanie.
Biblioteka Macrobenchmark wstawia zdarzenia i monitoruje wyniki zewnętrznie z utworzonej na podstawie testów. Dlatego podczas tworzenia testów porównawczych nie należy bezpośrednio wywoływać kodu aplikacji, zamiast tego poruszać się po niej jako użytkownika.
Mikrotest porównawczy
Biblioteka Microbenchmark umożliwia przeprowadzanie testów porównawczych kodu aplikacji bezpośrednio w pętli. Służy on do pomiaru pracy procesora oceniającej wydajność w najlepszym przypadku, takich jak jak rozgrzewanie się Just in Time (JIT) i buforowanie dostępu do dysku. z pętlą wewnętrzną lub określoną funkcją „gorące”. Biblioteka może mierzyć tylko kod, który możesz wywołać bezpośrednio w ramach izolacji.
Jeśli Twoja aplikacja musi przetwarzać złożoną strukturę danych lub mieć określone
algorytm obciążający duże zasoby obliczeniowe, który jest wywoływany wiele razy podczas uruchamiania aplikacji,
mogą być dobrym przykładem testów porównawczych. Możesz też mierzyć elementy interfejsu. Możesz np. mierzyć koszt wiązania elementu RecyclerView
,
ile czasu potrzeba na rozwinięcie układu
lub jak wymagający jest układ i pomiar
zaliczenie zajęć View
dotyczy wyników.
Nie możesz jednak mierzyć, w jaki sposób porównania przyczyniają się do ogólnych wrażeń użytkowników. W niektórych przypadkach testowanie porównawcze nie informuje, czy udało Ci się poprawić wąskie gardło, np. płynność lub czas uruchamiania aplikacji. Dlatego ważne jest, aby najpierw zidentyfikować te wąskie gardła za pomocą Android Profilera. Po znalezieniu kodu, który chcesz przeanalizować i zoptymalizować, test porównawczy pętla może być powtarzana w szybki i łatwiejszy sposób, aby zmniejszyć szum co pozwala skupić się na jednym obszarze poprawy.
Biblioteka mikroporównań zawiera tylko informacje o Twojej aplikacji, a nie o cały system. Dlatego najlepiej jest analizować skuteczność sytuacji związane z aplikacją, a nie z ogólnymi problemami z systemem.
Porównanie biblioteki z benchmarkami
Macrobenchmark | Mikrotest porównawczy | |
---|---|---|
Wersja API | 23 i nowsze | 14 i nowsze |
Funkcja | Pomiar wejścia wysokiego poziomu punktów lub interakcji, jako rozpoczęcie aktywności, przewijając listę. | pomiar poszczególnych funkcji; |
Zakres | Testowanie pełnej aplikacji poza procesem. | Testowanie w trakcie przetwarzania pracy procesora. |
Szybkość | Średnia szybkość iteracji. Może ona trwać dłużej niż minutę. | Szybka iteracja. Często mniej niż 10 sekund. |
Śledzenie | Wyniki są dostarczane z śladami profilowania. | Próbkowanie metodą opcjonalną oraz ich śledzenie. |
Polecane dla Ciebie
- Uwaga: tekst linku jest wyświetlany, gdy obsługa JavaScript jest wyłączona
- Tworzenie profili podstawowych {:#creating-profile-rules}
- Biblioteka JankStats
- Omówienie pomiaru skuteczności aplikacji