Na tej stronie znajdziesz wskazówki dotyczące rozwiązywania problemów, które pomogą Ci rozpocząć korzystanie z Monitorowania wydajności lub używać jego funkcji i narzędzi.
Pierwsze kroki w celu rozwiązania problemów
Te 2 testy są ogólnymi sprawdzonymi metodami, które zalecamy wszystkim użytkownikom przed dalszym rozwiązywaniem problemów.
1. Sprawdzanie komunikatów logu pod kątem zdarzeń dotyczących wydajności
Sprawdź komunikaty logu, aby upewnić się, że pakiet SDK do monitorowania wydajności przechwytuje zdarzenia dotyczące wydajności.
Jak wyświetlać komunikaty z dziennika dotyczące zdarzeń związanych z wydajnością
Włącz logowanie debugowania w ramach monitorowania wydajności w czasie kompilacji, dodając element
<meta-data>
do plikuAndroidManifest.xml
aplikacji w następujący sposób:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
Sprawdź, czy w komunikatach logu nie ma żadnych komunikatów o błędach.
Monitorowanie wydajności oznacza komunikaty logu tagiem
FirebasePerformance
. Korzystając z filtrowania logcat, możesz wyświetlić śledzenie czasu trwania i logowanie żądań sieciowych HTTP/S, uruchamiając to polecenie:adb logcat -s FirebasePerformance
Sprawdź następujące typy logów, które wskazują, że Monitorowanie wydajności rejestruje zdarzenia dotyczące wydajności:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URL
Logging network request trace: URL
Kliknij adres URL, aby wyświetlić dane w konsoli Firebase. Aktualizacja danych w panelu może chwilę potrwać.
Jeśli aplikacja nie rejestruje zdarzeń dotyczących wydajności, zapoznaj się ze wskazówkami dotyczącymi rozwiązywania problemów.
2. Sprawdzanie Panelu stanu Firebase
Sprawdź, czy w Panelu stanu Firebase nie występują znane przerwy w działaniu Firebase lub Monitorowania wydajności.
Wprowadzenie do Monitorowania wydajności
Jeśli dopiero zaczynasz korzystać z Monitorowania wydajności (iOS+ | Android | Internet), poniższe wskazówki mogą pomóc w rozwiązaniu problemów związanych z wykrywaniem przez Firebase pakietu SDK lub wyświetlaniem pierwszych danych o wydajności w konsoli Firebase.
Pakiet SDK został dodany do aplikacji, ale w konsoli nadal pojawia się komunikat o konieczności dodania pakietu SDK
Firebase może wykryć, czy dodano pakiet SDK Performance Monitoring do aplikacji, gdy otrzyma ona z niej informacje o zdarzeniach (np. o interakcjach). Zazwyczaj w ciągu 10 minut od uruchomienia aplikacji pojawia się w panelu Wydajności konsoli Firebase komunikat „Wykryto pakiet SDK”. Następnie w ciągu 30 minut w panelu wyświetli się wstępnie przetworzone dane.
Jeśli od dodania najnowszej wersji pakietu SDK do aplikacji minęło ponad 10 minut i wciąż nie widzisz żadnych zmian, sprawdź komunikaty logu i upewnij się, że Monitorowanie wydajności rejestruje zdarzenia. Aby rozwiązać problem z wiadomością dotyczącą opóźnionego wykrywania opóźnionego pakietu SDK, wykonaj opisane poniżej czynności.
Aplikacja loguje zdarzenia: instrukcje rozwiązywania problemów
Upewnij się, że używasz pakietu SDK Performance Monitoring na Androida w wersji 19.1.0 lub nowszej (albo Firebase BoM w wersji 26.3.0 lub nowszej). Zapoznaj się z informacjami o wersji.
Jeśli nadal tworzysz aplikacje lokalnie, spróbuj wygenerować więcej zdarzeń na potrzeby zbierania danych:
- Aby generować zdarzenia, kilka razy przełączaj aplikację między tłem a pierwszym planem, wchodzij w interakcję z aplikacją za pomocą przechodzenia między ekranami lub uruchamiaj żądania sieciowe.
Upewnij się, że plik konfiguracyjny Firebase (
google-services.json
) został prawidłowo dodany do aplikacji i nie został zmodyfikowany. W szczególności sprawdź następujące kwestie:Nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, np.
(2)
.Plik konfiguracyjny znajduje się w katalogu module (poziom aplikacji) aplikacji.
Identyfikator aplikacji Firebase na Androida (
mobilesdk_app_id
) wymieniony w pliku konfiguracyjnym jest prawidłowy dla Twojej aplikacji. Znajdziesz go na karcie Twoje aplikacje w ustawieniach projektu settings.
Jeśli coś jest nie tak z plikiem konfiguracyjnym w Twojej aplikacji, spróbuj wykonać te czynności:
Usuń plik konfiguracyjny, który znajduje się obecnie w aplikacji.
Wykonaj te instrukcje, aby pobrać nowy plik konfiguracyjny i dodać go do aplikacji na Androida.
Jeśli pakiet SDK rejestruje zdarzenia i wydaje się, że wszystko jest skonfigurowane prawidłowo, ale nadal nie widzisz komunikatu wykrywania pakietu SDK ani przetworzonych danych (po upływie 10 minut), skontaktuj się z zespołem pomocy Firebase.
Aplikacja nie rejestruje zdarzeń: sposoby rozwiązywania problemów
Sprawdź konfigurację wtyczki do monitorowania wydajności w ten sposób:
Upewnij się, że wtyczka została dodana prawidłowo. W szczególności sprawdź następujące kwestie:
- Wtyczka (
) została dodana do plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - W pliku
build.gradle
na poziomie projektu została uwzględniona zależność ścieżki klasy dla wtyczki (
).classpath 'com.google.firebase:perf-plugin:1.4.2'
- Wtyczka (
Upewnij się, że wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabled
w plikubuild.gradle
modułu (na poziomie aplikacji)firebasePerformanceInstrumentationEnabled
w plikugradle.properties
Sprawdź, czy pakiet SDK Performance Monitoring nie jest wyłączony za pomocą jednej z tych flag w pliku
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Upewnij się, że Monitorowanie wydajności nie jest wyłączone w środowisku wykonawczym.
Jeśli nie widzisz niczego, co jest wyłączone w aplikacji, skontaktuj się z zespołem pomocy Firebase.
Konsola wyświetla komunikat, że wykryto pakiet SDK, ale nie są wyświetlane żadne dane
Monitorowanie wydajności przetwarza dane zdarzeń dotyczących wydajności, zanim zostaną wyświetlone w panelu Skuteczność.
Jeśli od wyświetlenia komunikatu „Wykryto pakiet SDK” minęły ponad 24 godziny, a dane są nadal niewidoczne, sprawdź w Panelu stanu Firebase, czy nie doszło do znanej przerwy w działaniu usługi. Jeśli nie ma przerwy w działaniu usługi, skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie problemów – ogólne
Jeśli został już dodany pakiet SDK i używasz Monitorowania wydajności w aplikacji, poniższe wskazówki mogą pomóc w rozwiązaniu ogólnych problemów związanych z funkcjami i narzędziami Monitorowania wydajności.
Aplikacja nie loguje zdarzeń dotyczących wydajności
Jeśli nie widzisz komunikatów dziennika dotyczących zdarzeń wydajności, wykonaj te czynności:
Sprawdź konfigurację wtyczki do monitorowania wydajności w ten sposób:
Upewnij się, że wtyczka została dodana prawidłowo. W szczególności sprawdź następujące kwestie:
- Wtyczka (
) została dodana do plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - W pliku
build.gradle
na poziomie projektu została uwzględniona zależność ścieżki klasy dla wtyczki (
).classpath 'com.google.firebase:perf-plugin:1.4.2'
- Wtyczka (
Upewnij się, że wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabled
w plikubuild.gradle
modułu (na poziomie aplikacji)firebasePerformanceInstrumentationEnabled
w plikugradle.properties
Sprawdź, czy pakiet SDK Performance Monitoring nie jest wyłączony za pomocą jednej z tych flag w pliku
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Upewnij się, że Monitorowanie wydajności nie jest wyłączone w środowisku wykonawczym.
Jeśli nie widzisz niczego, co jest wyłączone w aplikacji, skontaktuj się z zespołem pomocy Firebase.
W panelu wydajności brakuje danych zrzutu ekranu
Jeśli brakuje danych śledzenia renderowania ekranu, wypróbuj te rozwiązania:
Upewnij się, że używasz najnowszej wersji pakietu SDK do Androida (21.0.1). Ślady renderowania ekranu są dostępne tylko w wersji 15.2.0 lub nowszej.
Upewnij się, że nie wyłączono ręcznie przyspieszenia sprzętowego ekranu.
Upewnij się, że nie używasz DexGuard ani Jack. Monitorowanie wydajności jest niezgodne z tymi łańcuchami narzędzi.
DexGuard wyłącza automatyczne zbieranie danych o uruchomieniach aplikacji, jej działaniu na pierwszym planie i śladach działania aplikacji w tle. Jeśli Twoja aplikacja korzysta z DexGuard, wszystkie ślady kodu niestandardowego powinny jednak działać normalnie.
Język Jack został wycofany i zwykle nie należy go używać w swojej aplikacji.
W panelu wydajności brakuje niestandardowych danych logu czasu
Czy widzisz dane o wydajności logów zbieranych automatycznie, ale nie niestandardowych logów czasu? Aby spróbować go rozwiązać, wykonaj te czynności:
Jeśli niestandardowe ślady kodu zostały instrumentowane za pomocą interfejsu Trace API, sprawdź konfigurację logów czasu, a zwłaszcza te:
- Nazwy niestandardowych logów czasu kodu i wskaźników niestandardowych muszą spełniać te wymagania: bez odstępów na początku ani na końcu, bez znaku podkreślenia (
_
), a maksymalna długość to 32 znaki. - Wszystkie logi czasu muszą być uruchomione i zatrzymane. Każdy log czasu, który nie został rozpoczęty, nie został zatrzymany lub został zatrzymany przed rozpoczęciem, nie będzie logowany.
- Nazwy niestandardowych logów czasu kodu i wskaźników niestandardowych muszą spełniać te wymagania: bez odstępów na początku ani na końcu, bez znaku podkreślenia (
Jeśli niestandardowe ślady kodu były instrumentowane za pomocą notacji
@AddTrace
, sprawdź konfigurację wtyczki do monitorowania wydajności do Gradle:Upewnij się, że wtyczka została dodana prawidłowo. W szczególności sprawdź następujące kwestie:
- Wtyczka (
) została dodana do plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - W pliku
build.gradle
na poziomie projektu została uwzględniona zależność ścieżki klasy dla wtyczki (
).classpath 'com.google.firebase:perf-plugin:1.4.2'
- Wtyczka (
Upewnij się, że wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabled
w plikubuild.gradle
modułu (na poziomie aplikacji)firebasePerformanceInstrumentationEnabled
w plikugradle.properties
Sprawdź komunikaty logu, aby upewnić się, że Monitorowanie wydajności rejestruje oczekiwane niestandardowe logi czasu kodu.
Jeśli Monitorowanie wydajności rejestruje zdarzenia, ale po 24 godzinach nie wyświetlają się żadne dane, skontaktuj się z zespołem pomocy Firebase.
W panelu wydajności brakuje danych dotyczących żądań sieciowych
Jeśli brakuje danych dotyczących żądań sieciowych, wykonaj te czynności, by rozwiązać problem:
W przypadku aplikacji na Androida wtyczka do monitorowania wydajności do monitorowania wydajności umożliwia instrumentację, która umożliwia automatyczne monitorowanie żądań sieciowych HTTP/S. Sprawdź te kwestie:
Upewnij się, że wtyczka została dodana prawidłowo. W szczególności sprawdź następujące kwestie:
- Wtyczka (
) została dodana do plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - W pliku
build.gradle
na poziomie projektu została uwzględniona zależność ścieżki klasy dla wtyczki (
).classpath 'com.google.firebase:perf-plugin:1.4.2'
- Wtyczka (
Upewnij się, że wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabled
w plikubuild.gradle
modułu (na poziomie aplikacji)firebasePerformanceInstrumentationEnabled
w plikugradle.properties
Sprawdź niezgodność biblioteki sieciowej. Monitorowanie wydajności automatycznie gromadzi wskaźniki dotyczące żądań sieciowych, które korzystają z tych bibliotek sieciowych: OkHttp 3.x.x, URLConnection w Javie i Apache HttpClient.
Pamiętaj, że możesz dodać monitorowanie niestandardowe na potrzeby żądań sieciowych.
Pamiętaj:
W zależności od sposobu działania kodu i używanych przez niego bibliotek sieciowych Monitorowanie wydajności może generować raporty tylko o ukończonych żądaniach sieciowych. Oznacza to, że otwarte połączenia HTTP/S mogą nie być zgłaszane.
Monitorowanie wydajności nie jest zgodne z urządzeniami DexGuard i Jack.
- DexGuard wyłącza monitorowanie żądań sieciowych HTTP/S.
- Język Jack został wycofany i zwykle nie należy go używać w swojej aplikacji.
Monitorowanie wydajności nie raportuje żądań sieciowych z nieprawidłowymi nagłówkami
Content-Type
. Jednak żądania sieciowe bez nagłówkówContent-Type
będą nadal akceptowane.
Dane żądań sieciowych nie agregują się w oczekiwany sposób
Dowiedz się więcej o tym, jak Monitorowanie wydajności agreguje dane żądań sieciowych we wzorcach adresów URL.
Możesz też wypróbować niestandardowe wzorce adresów URL.
Najczęstsze pytania
Co się stało z Najważniejsze problemy na karcie Skuteczność na stronie głównej Projektu?
Zastąpiliśmy sekcję Najważniejsze problemy Najnowszymi alertami w związku z niedawnym wprowadzeniem alertów, które automatycznie powiadamiają Cię o przekroczeniu ustawionych przez Ciebie progów. Problemy zostały wycofane i zastąpione alertami.
Selektor aplikacji u góry karty Skuteczność filtruje alerty w sekcji Najnowsze alerty. Wyświetlane są tylko 3 najnowsze alerty dla wybranych aplikacji.
Więcej informacji o alertach znajdziesz w artykule Konfigurowanie alertów dotyczących problemów z wydajnością.
Co się stało z możliwością ustawiania progów dla problemów w konsoli?
Monitorowanie wydajności obsługuje alerty dotyczące wskaźników, które przekraczają zdefiniowane progi. Aby uniknąć pomyłek związanych z konfigurowalnymi progami wskaźników wydajności, usunęliśmy możliwość konfigurowania progów w przypadku problemów.
Co się stało z informacjami o szczegółach i danych w konsoli Firebase?
Zastąpiliśmy strony Szczegóły i dane nowym, scentralizowanym interfejsem użytkownika, aby usprawnić rozwiązywanie problemów. Ten nowy interfejs do rozwiązywania problemów oferuje te same główne funkcje, które są dostępne w sekcji Szczegóły i Dane. Więcej informacji o rozwiązywaniu problemów znajdziesz w artykule Wyświetlanie dodatkowych danych o konkretnym logu czasu.
Dlaczego liczba próbek jest niezgodna z oczekiwaniami?
Monitorowanie wydajności zbiera dane o wydajności z urządzeń użytkowników Twojej aplikacji. Jeśli aplikacja ma wielu użytkowników lub generuje dużą aktywność związaną z wydajnością, monitorowanie wydajności może ograniczyć zbieranie danych do podzbioru urządzeń, aby zmniejszyć liczbę przetworzonych zdarzeń. Limity te są na tyle wysokie, że nawet w przypadku mniejszej liczby zdarzeń wartości danych odzwierciedlają wrażenia użytkowników.
Aby zarządzać ilością gromadzonych danych, Monitorowanie wydajności korzysta z tych opcji próbkowania:
Ograniczenie szybkości na urządzeniu: aby zapobiec wysyłaniu przez urządzenie nagłych serii śledzenia, ograniczamy liczbę logów czasu i żądań sieciowych wysyłanych z urządzenia do 300 zdarzeń na 10 minut. Ta metoda chroni urządzenie przed zapętlanymi instrumentami, które mogą wysyłać duże ilości danych o wydajności, i zapobiega zaburzaniu pomiarów wydajności przez pojedyncze urządzenie.
Próbkowanie dynamiczne: Monitorowanie wydajności gromadzi około 100 mln zdarzeń w przypadku logów czasu kodu i 100 mln danych śledzenia żądań sieciowych na aplikację dziennie dla wszystkich użytkowników aplikacji. Częstotliwość próbkowania dynamicznego jest pobierana z urządzeń (za pomocą Zdalnej konfiguracji Firebase), aby określić, czy losowe urządzenie powinno przechwycić i przesłać logi czasu. Urządzenie, które nie zostało wybrane do próbkowania, nie wysyła żadnych zdarzeń. Częstotliwość próbkowania dynamicznego jest związana z aplikacją i dostosowuje się tak, aby ogólna ilość zebranych danych nie przekraczała limitu.
Sesje użytkownika wysyłają dodatkowe, szczegółowe dane z urządzenia użytkownika, co wymaga większej ilości zasobów do przechwytywania i wysyłania danych. Aby zminimalizować wpływ sesji użytkowników, Monitorowanie wydajności może też ograniczać liczbę sesji.
Ograniczenie szybkości po stronie serwera: aby zapobiec przekroczeniu limitu próbkowania, Monitorowanie wydajności może używać próbkowania po stronie serwera, aby pomijać niektóre zdarzenia odebrane z urządzeń. Chociaż to ograniczenie nie zmienia skuteczności naszych danych, może powodować drobne zmiany wzorców, w tym:
- Liczba logów czasu może się różnić od liczby uruchomień fragmentu kodu.
- Ślady, które są ściśle sprzężone w kodzie, mogą zawierać różną liczbę próbek.
Co się stało z kartą Problemy w konsoli?
Zastąpiliśmy kartę Problemy teraz funkcją Alerty, która automatycznie powiadamia Cię o przekroczeniu ustawionych przez Ciebie progów. Nie musisz już ręcznie sprawdzać stanu progu w konsoli Firebase. Więcej informacji o Alertach Google znajdziesz w artykule Konfigurowanie alertów dotyczących problemów z wydajnością.
Co się stało z kartami Na urządzeniu i Sieć w konsoli? Jak wyświetlić ślady, które były na tych stronach?
Przeprojektowaliśmy sekcję Monitorowanie wydajności w konsoli Firebase, tak aby na karcie Panel były widoczne najważniejsze dane i wszystkie logi czasu w jednym miejscu. W ramach zmian usunęliśmy strony Na urządzeniu i Sieć.
Tabela logów czasu u dołu karty Panel zawiera te same informacje, które wyświetlały się na kartach Na urządzeniu i Sieć, ale ma też kilka nowych funkcji, w tym możliwość sortowania logów czasu według zmiany procentowej określonego wskaźnika. Aby wyświetlić wszystkie wskaźniki i dane z określonego logu czasu, kliknij jego nazwę w tabeli logów czasu.
Logi możesz wyświetlić na tych podkartach w tabeli logów czasu:
- Logi czasu żądań sieciowych (zarówno gotowe, jak i niestandardowe) – podkarta Żądania sieciowe
- Niestandardowe logi czasu – podkarta Niestandardowe logi czasu
- Uruchamianie aplikacji, śledzenie aplikacji na pierwszym planie i śledzenie aplikacji w tle – podkarta Niestandardowe logi czasu
- Ślady renderowania ekranu – podkarta Renderowanie ekranu
- Ślady wczytywania strony – podkarta Wczytanie strony
Szczegółowe informacje o tabeli logów czasu oraz wyświetlaniu wskaźników i danych znajdziesz na stronie przeglądu konsoli (iOS+ | Android | Internet).
Dlaczego liczba spowolnionych i zablokowanych klatek jest niezgodna z oczekiwaniami?
Klatki renderowane z powolnym renderowaniem i zablokowane klatki są obliczane z zakładaną częstotliwością odświeżania urządzenia wynoszącą 60 Hz. Jeśli częstotliwość odświeżania urządzenia jest niższa niż 60 Hz, każda klatka będzie renderowana wolniej, ponieważ renderuje się mniej klatek na sekundę. Dłuższe renderowanie może spowodować, że w raportach będzie raportowanych więcej spowolnionych lub zablokowanych klatek, ponieważ więcej klatek będzie renderowanych wolniej lub zatrzyma się. Jeśli jednak częstotliwość odświeżania urządzenia jest większa niż 60 Hz, każda klatka będzie renderowana szybciej. Może to spowodować uwzględnianie w raportach mniejszej liczby spowolnionych lub zablokowanych klatek. Jest to obecne ograniczenie w pakiecie SDK Performance Monitoring.
Dlaczego nie widzę zrzutów fragmentów?
Aby oprócz aktywności w aplikacji widzieć też wydajność fragmentów, upewnij się, że aplikacja korzysta z pakietu SDK Performance Monitoring na Androida w wersji 20.1.0 lub nowszej. Więcej informacji znajdziesz w artykule Dodawanie monitorowania wydajności do aplikacji.
Jak sprawdzić, które ślady są powiązane z fragmentami i działaniami?
Każdy fragment i ślad aktywności opiera się na nazwie klasy zdefiniowanej w aplikacji. Każdy zrzut ekranu zawiera prefiks st, po którym następuje nazwa klasy. Z konsoli Firebase ten prefiks jest usuwany. Więcej informacji znajdziesz w artykule na temat danych o wydajności renderowania ekranu (aplikacje Apple i na Androida) .
Dlaczego widzę mniej śladów fragmentów niż innych śladów?
Monitorowanie wydajności przeprowadza próbkowanie wszystkich zdarzeń zebranych na urządzeniu. Ta metoda pozwala nam rejestrować minimalną liczbę zdarzeń na urządzeniach użytkowników potrzebnych do dostarczania danych o skuteczności.
Jak otrzymam powiadomienie, gdy wystąpi problem z wydajnością renderowania mojej aplikacji?
Dzięki monitorowaniu wydajności możesz skonfigurować alerty dotyczące danych, na których Ci zależy. W przypadku wygenerowanych logów czasu renderowania ekranu możesz skonfigurować alerty, które będą powiadamiać Cię, gdy odsetek spowolnionych i zablokowanych klatek przekroczy ustalony próg.
Moje czasy kompilacji są wysokie po włączeniu wtyczki Gradle monitorowania wydajności. Jak mogę to poprawić?
Monitorowanie wydajności na Androidzie korzysta z instrumentacji kodu bajtowego, aby udostępniać niektóre gotowe funkcje, takie jak monitorowanie żądań sieciowych HTTP/S. Ten proces w ramach kompilacji wymaga iteracji przez wszystkie klasy aplikacji (w tym zależności) w celu dostosowania kodu, który ma kluczowe znaczenie przy pomiarze wydajności żądań sieciowych aplikacji.
Oto kilka kluczowych czynników wpływających na wydłużenie czasu kompilacji:
- liczbę zajęć lub plików;
- rozmiar każdej z tych klas (wierszy kodu),
- Konfiguracja maszyny
- Pierwsza kompilacja a następna (kolejne kompilacje są zwykle szybsze niż pierwsza)
Aby zoptymalizować czas kompilacji, rozważ modularyzację kodu.
Począwszy od wersji 1.3.3 wtyczki do monitorowania wydajności, koncentrowaliśmy się na znaczących ulepszeniach przyrostowego przetwarzania kompilacji i buforowania danych wejściowych biblioteki. Aby otrzymywać najnowsze ulepszenia czasu kompilacji, użyj najnowszej wersji wtyczki (1.4.2).
Aby uniknąć długich czasów kompilacji, możesz wyłączyć wtyczkę do monitorowania wydajności na potrzeby kompilacji do debugowania lokalnie. Nie jest to jednak zalecane w przypadku kompilacji produkcyjnych, ponieważ może skutkować nieprawidłowymi pomiarami wydajności żądań sieciowych w aplikacji.
Co zrobić, jeśli z powodu niekompatybilnych bibliotek z wtyczką monitorowania wydajności do Gradle wystąpią błędy kompilacji?
Monitorowanie wydajności na Androidzie korzysta z instrumentacji kodu bajtowego, aby udostępniać niektóre gotowe funkcje, takie jak monitorowanie żądań sieciowych HTTP/S. Ten proces w ramach kompilacji wymaga iteracji przez wszystkie klasy aplikacji (w tym zależności) w celu dostosowania kodu, który ma kluczowe znaczenie przy pomiarze wydajności żądań sieciowych aplikacji.
Jeśli po integracji z wtyczką do monitorowania wydajności wystąpią błędy kompilacji, takie jak JSR/RET are not supported with
computeFrames option
lub podobne, może to być spowodowane zależność między biblioteką, która jest niezgodna z wtyczką do Gradle monitorowania wydajności.
Aby obejść ten problem, możesz wykluczyć niezgodne zajęcia lub biblioteki z instrumentacji, wykonując te czynności:
- Zaktualizuj wtyczkę do monitorowania wydajności do najnowszej wersji (minimum 1.4.0).
- Zaktualizuj wtyczkę Androida do obsługi Gradle do wersji 7.2.0 lub nowszej.
- Dodaj tę flagę do pliku
build.gradle
modułu (na poziomie aplikacji), aby wykluczyć niezgodne klasy/biblioteki z instrumentowania:android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
Więcej informacji o właściwościexclude
interfejsu APIInstrumentation
wtyczki Androida do obsługi Gradle znajdziesz w artykule Instrumentacja.
Jeśli napotkasz błędy kompilacji wynikające z niezgodnych bibliotek, zgłoś ten problem w GitHubie. Umożliwi to wykluczenie ich z instrumentowania za pomocą wtyczki do monitorowania wydajności.
Eksportowanie danych z monitorowania wydajności do BigQuery trwa dłużej niż oczekiwano. Czy to nie czas rzeczywisty?
Jeśli masz włączoną integrację BigQuery z Monitorowaniem wydajności Firebase, Twoje dane zostaną wyeksportowane do BigQuery w ciągu 12–24 godzin po zakończeniu dnia (czasu pacyficznego).
Na przykład dane z 19 kwietnia będą dostępne w BigQuery 20 kwietnia między 12:00 a północą (wszystkie daty i godziny są podane w czasie pacyficznym).
Przetwarzanie i wyświetlanie danych w czasie zbliżonym do rzeczywistego
Co oznaczają dane o skuteczności aktualizowane w czasie zbliżonym do rzeczywistego?
Monitorowanie wydajności Firebase przetwarza zebrane dane o skuteczności na bieżąco, dzięki czemu w konsoli Firebase wyświetlają się dane w czasie zbliżonym do rzeczywistego. Przetworzone dane wyświetlają się w konsoli w ciągu kilku minut od ich zebrania, dlatego tu pojawia się określenie „w czasie rzeczywistym”.
Aby korzystać z przetwarzania danych w czasie zbliżonym do rzeczywistego, upewnij się, że Twoja aplikacja używa wersji pakietu SDK zgodnej z czasem rzeczywistym.
Jak uzyskać dane o działaniu aplikacji aktualizowane w czasie zbliżonym do rzeczywistego?
Aby korzystać z przetwarzania danych w czasie zbliżonym do rzeczywistego, musisz tylko upewnić się, że Twoja aplikacja korzysta z wersji pakietu SDK Performance Monitoring, która jest zgodna z przetwarzaniem danych w czasie rzeczywistym.
Oto wersje pakietu SDK zgodnego w czasie rzeczywistym:
- iOS – wersja 7.3.0 lub nowsza
- tvOS – wersja 8.9.0 lub nowsza
- Android – wersja 19.0.10 lub nowsza (albo Firebase Android BoM w wersji 26.1.0 lub nowszej)
- Internet – wersja 7.14.0 lub nowsza
Pamiętaj, że zawsze zalecamy korzystanie z najnowszej wersji pakietu SDK. Każda z wymienionych powyżej wersji umożliwi Monitorowanie wydajności przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Które wersje pakietu SDK Performance Monitoring są uznawane za zgodne w czasie rzeczywistym?
Te wersje pakietu SDK są zgodne z przetwarzaniem danych w czasie rzeczywistym:
- iOS – wersja 7.3.0 lub nowsza
- tvOS – wersja 8.9.0 lub nowsza
- Android – wersja 19.0.10 lub nowsza (albo Firebase Android BoM w wersji 26.1.0 lub nowszej)
- Internet – wersja 7.14.0 lub nowsza
Pamiętaj, że zawsze zalecamy korzystanie z najnowszej wersji pakietu SDK. Każda z wymienionych powyżej wersji umożliwi Monitorowanie wydajności przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Co się stanie, jeśli nie zaktualizuję aplikacji, aby korzystała z wersji pakietu SDK zgodnej z danymi w czasie rzeczywistym?
Jeśli Twoja aplikacja nie korzysta z wersji pakietu SDK zgodnej z danymi w czasie rzeczywistym, wszystkie dane o jej działaniu będą widoczne w konsoli Firebase. Wyświetlenie danych o skuteczności będzie jednak opóźnione o około 36 godzin od momentu ich zebrania.
Pakiet SDK został zaktualizowany do wersji zgodnej w czasie rzeczywistym, ale niektórzy użytkownicy nadal korzystają ze starszych wersji mojej aplikacji. Czy nadal będę widzieć ich dane o wydajności w konsoli Firebase?
Tak. Niezależnie od tego, której wersji pakietu SDK używa instancja aplikacji, zobaczysz dane o wydajności wszystkich użytkowników.
Jeśli jednak analizujesz najnowsze dane (sprzed mniej niż 36 godzin), wyświetlane dane pochodzą od użytkowników instancji aplikacji korzystających z wersji pakietu SDK zgodnej w czasie rzeczywistym. Niedawne dane obejmują jednak dane o skuteczności ze wszystkich wersji aplikacji.
Kontakt z zespołem pomocy Firebase
Jeśli kontaktujesz się z zespołem pomocy Firebase, zawsze podaj swój identyfikator aplikacji Firebase. Identyfikator aplikacji Firebase znajdziesz na karcie Twoje aplikacje w settings Ustawieniach projektu.