Performance Monitoring używa logów czasu do zbierania danych o monitorowanych procesach w Twojej aplikacji. Log czasu to raport zawierający dane zarejestrowane między 2 punktami w czasie w Twojej aplikacji.
W przypadku aplikacji na iOS i Androida Performance Monitoring automatycznie mierzy wydajność renderowania różnych ekranów w Twojej aplikacji. Performance Monitoring tworzy log czasu renderowania ekranu dla każdego ekranu w Twojej aplikacji. Te logi czasu zbierają i mierzą te dane:
Spowolnione klatki – mierzy odsetek instancji ekranu, których renderowanie trwa dłużej niż 16 ms.
Zablokowane klatki – mierzy odsetek instancji ekranu których renderowanie trwa dłużej niż 700 ms.
Spowolnione lub zablokowane klatki w aplikacji mogą powodować słabą wydajność urządzenia, znaną też jako zacinanie się lub opóźnienie. Rejestrowanie danych o zablokowanych i powolnym renderowaniu klatek może pomóc w identyfikowaniu ekranów o niskiej wydajności, co pozwoli Ci poprawić wydajność renderowania aplikacji.
Dane z logów czasu renderowania ekranu możesz wyświetlać na karcie Renderowanie ekranu w tabeli logów czasu. Tabela logów czasu znajduje się u dołu strony Wydajność w konsoli Firebase. Więcej informacji znajdziesz w artykule Śledzenie, wyświetlanie i filtrowanie danych o skuteczności.
Dane zbierane przez logi czasu renderowania ekranu
Te logi czasu są gotowe, więc nie możesz do nich dodawać niestandardowych danych ani atrybutów.
Klatki z powolnym renderowaniem i zablokowane klatki są obliczane przy założeniu, że częstotliwość odświeżania urządzenia wynosi 60 Hz. Jeśli częstotliwość odświeżania urządzenia jest niższa niż 60 Hz, czas renderowania każdej klatki będzie dłuższy, ponieważ na sekundę będzie renderowanych mniej klatek. Dłuższe czasy renderowania mogą powodować zgłaszanie większej liczby spowolnionych lub zablokowanych klatek, ponieważ więcej klatek będzie renderowanych wolniej lub będzie się blokować. Jeśli jednak częstotliwość odświeżania urządzenia jest wyższa niż 60 Hz, czas renderowania każdej klatki będzie krótszy. Może to spowodować zgłaszanie mniejszej liczby spowolnionych lub zablokowanych klatek. Jest to obecne ograniczenie pakietu Performance Monitoring SDK.
Powolne renderowanie klatek
Te dane to odsetek sesji użytkowników, podczas których na konkretnym ekranie wystąpiła zauważalna liczba spowolnionych klatek. Dokładniej mówiąc, te dane to odsetek instancji ekranu, podczas których ponad 50% klatek renderowało się dłużej niż 16 ms.
Zablokowane klatki
Te dane to odsetek sesji użytkowników, podczas których na konkretnym ekranie wystąpiła zauważalna liczba zablokowanych klatek. Dokładniej mówiąc, te dane to odsetek instancji ekranu, podczas których ponad 0,1% klatek renderowało się dłużej niż 700 ms.
Jak są generowane logi czasu renderowania ekranu?
Każdy log czasu renderowania ekranu jest identyfikowany przez nazwę elementu widoku w aplikacji. Klient Performance Monitoring tworzy logi czasu renderowania ekranu dla każdej aktywności lub fragmentu używanego przez aplikację.
Każdy log czasu renderowania ekranu wykonuje te czynności:
Rozpoczyna się w przypadku każdej klasy aktywności i fragmentu, gdy obiekt staje się widoczny na ekranie.
OnActivityStarted()w przypadku aktywności iOnFragmentResume()w przypadku fragmentów.Zatrzymuje się w przypadku każdej klasy aktywności i fragmentu, gdy obiekt nie jest widoczny na ekranie.
OnActivityStopped()w przypadku aktywności iOnFragmentPaused()w przypadku fragmentów.
Śledzenie, wyświetlanie i filtrowanie danych o skuteczności
Aby wyświetlać dane o skuteczności w czasie rzeczywistym, upewnij się, że Twoja aplikacja używa pakietu SDK do monitorowania wydajności w wersji zgodnej z przetwarzaniem danych w czasie rzeczywistym. Więcej informacji o danych o skuteczności w czasie rzeczywistym.
Śledzenie najważniejszych danych w panelu
Aby dowiedzieć się, jak zmieniają się najważniejsze dane, dodaj je do tablicy danych u góry panelu Wydajność. Możesz szybko identyfikować regresje, sprawdzając zmiany w porównaniu z poprzednim tygodniem , lub sprawdzać, czy ostatnie zmiany w kodzie poprawiają wydajność.
Panel Monitorowania wydajności Firebase" />
Aby dodać dane do tablicy danych:
- Otwórz panel Wydajność w konsoli Firebase.
- Kliknij pustą kartę danych, a następnie wybierz istniejące dane, które chcesz dodać do tablicy.
- Aby wyświetlić więcej opcji, np. zastąpienie lub usunięcie danych, kliknij na wypełnionej karcie danych.
Tablica danych pokazuje zebrane dane w czasie, zarówno w postaci graficznej, jak i jako a procentową zmianę liczbową.
Więcej informacji o korzystaniu z panelu.
Wyświetlanie wydajności ekranu w konsoli
Aby wyświetlić logi czasu, otwórz panel Wydajność w Konsoli Firebase, przewiń w dół do tabeli logów czasu, a następnie kliknij odpowiednią kartę. Tabela wyświetla najważniejsze dane dla każdego logu czasu. Możesz nawet posortować listę według procentowej zmiany konkretnych danych.
Performance Monitoring udostępnia w konsoli Firebase stronę rozwiązywania problemów, która wyróżnia zmiany danych , co ułatwia szybkie rozwiązywanie problemów z wydajnością i minimalizowanie ich wpływu na aplikacje i użytkowników. Strony rozwiązywania problemów możesz używać, gdy dowiesz się o potencjalnych problemach z wydajnością, np. w tych sytuacjach:
- Wybierasz odpowiednie dane w panelu i zauważasz dużą różnicę.
- W tabeli logów czasu sortujesz dane tak, aby największe różnice były wyświetlane u góry, i widzisz znaczną zmianę procentową.
- Otrzymujesz e-maila z alertem o problemie z wydajnością.
Do strony rozwiązywania problemów możesz przejść na te sposoby:
- W panelu danych kliknij przycisk Wyświetl szczegóły danych.
- Na dowolnej karcie danych kliknij
=> Wyświetl szczegóły . Na stronie rozwiązywania problemów wyświetlają się informacje o wybranych danych. - W tabeli logów czasu kliknij nazwę logu czasu lub dowolną wartość danych w wierszu powiązanym z tym logiem czasu.
- W alercie e-mailowym kliknij Sprawdź teraz.
Gdy klikniesz nazwę logu czasu w tabeli logów czasu, możesz przejść do szczegółów interesujących Cię danych.
Dane Monitorowania wydajności Firebase filtrowane według atrybutu" />
- Filtruj według Wersji aplikacji, aby wyświetlić dane o poprzedniej lub najnowszej wersji.
- Filtruj według Urządzenia, aby dowiedzieć się, jak starsze urządzenia obsługują Twoją aplikację.
- Filtruj według Kraju, aby sprawdzić, czy lokalizacja bazy danych nie wpływa na konkretny region
Więcej informacji o wyświetlaniu danych z logów czasu.
Atrybuty fragmentów
W aplikacjach na Androida możesz ponownie używać fragmentów w innej aktywności lub fragmencie. Wydajność fragmentu może się różnić w zależności od fragmentu lub aktywności, w której jest renderowany. Aby uzyskać szczegółowe informacje o wydajności fragmentu w fragmencie nadrzędnym na podstawie aktywności lub fragmentu, z którym jest powiązany, użyj tych atrybutów:
Panel Monitorowania wydajności" />
- Hosting_activity – aktywność, która hostuje fragment. Umożliwia poznanie wydajności fragmentu w aktywności hostującej.
- Parent_fragment – fragment nadrzędny fragmentu, który sprawdzasz. Umożliwia poznanie wydajności fragmentu w fragmencie nadrzędnym. Jeśli nie ma fragmentów nadrzędnych, atrybut jest ustawiony na Brak elementu nadrzędnego.
Następne kroki
Więcej informacji o używaniu atrybutów do analizowania danych o skuteczności
Więcej informacji o śledzeniu problemów z wydajnością w Firebase konsoli.