Na tej stronie znajdziesz wskazówki dotyczące rozwiązywania problemów, które pomogą Ci zacząć korzystać z Performance Monitoring lub funkcji i narzędzi Performance Monitoring.
Pierwsze kroki w rozwiązywaniu problemów
Poniższe 2 sprawdzone metody są zalecane wszystkim użytkownikom przed podjęciem dalszych działań.
1. Sprawdzanie wiadomości w dzienniku pod kątem zdarzeń związanych z wydajnością
Sprawdź wiadomości w logach, aby upewnić się, że pakiet SDK Performance Monitoring rejestruje zdarzenia związane z wydajnością.
Wyświetlanie wiadomości logu dotyczących zdarzeń związanych z wydajnością
Włącz logowanie debugowania dla Performance Monitoring w czasie kompilacji, dodając element
<meta-data>do plikuAndroidManifest.xmlaplikacji w ten sposób:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>Sprawdź, czy w komunikatach dziennika nie ma żadnych komunikatów o błędach.
Performance Monitoring oznacza swoje wiadomości w dzienniku symbolem
FirebasePerformance. Za pomocą filtrowania logcat możesz wyświetlić ślad czasu trwania i logowanie żądań sieciowych HTTP/S, uruchamiając to polecenie:adb logcat -s FirebasePerformance
Sprawdź, czy występują te typy dzienników, które wskazują, że usługa Performance Monitoring rejestruje zdarzenia związane z wydajnością:
Logging trace metric: TRACE_NAME, FIREBASE_PERFORMANCE_CONSOLE_URLLogging network request trace: URL
Kliknij adres URL, aby wyświetlić dane w konsoli Firebase. Aktualizacja danych w panelu może potrwać kilka chwil.
Jeśli Twoja aplikacja nie rejestruje zdarzeń związanych z wydajnością, zapoznaj się z wskazówkami dotyczącymi rozwiązywania problemów.
2. Sprawdzanie panelu stanu Firebase
Sprawdź Panel stanu Firebase, jeśli występuje znana przerwa w działaniu Firebase lub Performance Monitoring.
Rozpoczęcie pracy z Performance Monitoring
Jeśli dopiero zaczynasz korzystać z Performance Monitoring (iOS+ | Android | Internet), poniższe wskazówki dotyczące rozwiązywania problemów mogą okazać się pomocne w przypadku problemów z wykrywaniem zestawu SDK przez Firebase lub wyświetlaniem pierwszych danych dotyczących wydajności w konsoli Firebase.
Pakiet SDK został dodany do aplikacji, ale konsola nadal wyświetla komunikat o konieczności dodania pakietu SDK
Firebase może wykryć, czy pomyślnie dodanoPerformance Monitoring SDK do Twojej aplikacji, gdy otrzyma z niej informacje o zdarzeniach (takie jak interakcje z aplikacją). Zwykle w ciągu 10 minut od uruchomienia aplikacjiWydajność panel zFirebase Konsola wyświetla komunikat „Wykryto zestaw SDK”. W ciągu 30 minut w panelu pojawią się wstępnie przetworzone dane.
Jeśli minęło ponad 10 minut od dodania najnowszej wersji zestawu SDK do aplikacji i nadal nie widzisz żadnych zmian, sprawdź komunikaty dziennika, aby upewnić się, że Performance Monitoring rejestruje zdarzenia. Aby rozwiązać problem z opóźnionym komunikatem o wykryciu pakietu SDK, wykonaj odpowiednie czynności opisane poniżej.
Aplikacja rejestruje zdarzenia: kroki rozwiązywania problemów
Upewnij się, że używasz zestawu SDK dla systemu Android Performance Monitoring 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 rozwijasz się lokalnie, spróbuj wygenerować więcej zdarzeń w celu zbierania danych:
- Generuj zdarzenia, wielokrotnie przełączając aplikację pomiędzy tłem i pierwszym planem, wchodząc w interakcję z aplikacją poprzez nawigację po ekranach i/lub wyzwalając żądania sieciowe.
Upewnij się, że plik konfiguracji Firebase (
google-services.json) został prawidłowo dodany do aplikacji i że nie został zmodyfikowany. Sprawdź konkretnie następujące kwestie:Do nazwy pliku konfiguracyjnego nie dodawano żadnych dodatkowych znaków, np.
(2).Plik konfiguracyjny znajduje się w katalogu moduł (poziom aplikacji) Twojej aplikacji.
Identyfikator aplikacji Firebase na Androida (
mobilesdk_app_id) wymieniony w pliku konfiguracyjnym jest poprawny dla Twojej aplikacji. Znajdź swój identyfikator aplikacji Firebase wTwoje aplikacje Twoja kartasettings Ustawienia projektu.
Jeśli coś wydaje się nie tak z plikiem konfiguracyjnym w Twojej aplikacji, wypróbuj następujące rozwiązania:
Usuń plik konfiguracyjny, który obecnie znajduje się w Twojej aplikacji.
Postępuj zgodnie z tymi instrukcjami, aby pobrać nowy plik konfiguracyjny i dodać go do aplikacji Android.
Jeśli zestaw SDK rejestruje zdarzenia i wszystko wydaje się być skonfigurowane poprawnie, ale nadal nie widzisz komunikatu o wykryciu zestawu SDK ani przetworzonych danych (po 10 minutach), skontaktuj się z pomocą techniczną Firebase.
Aplikacja nie rejestruje zdarzeń: kroki rozwiązywania problemów
Sprawdź konfigurację Performance Monitoring wtyczki Gradle:
Sprawdź, czy wtyczka została dodana prawidłowo. Sprawdź te kwestie:
- Wtyczkę (
) dodano w plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradlemodułu (na poziomie aplikacji). - W pliku
build.gradlena poziomie projektu uwzględniono zależność classpath wtyczki ().classpath 'com.google.firebase:perf-plugin:2.0.2'
- Wtyczkę (
Sprawdź, czy wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabledw pliku modułu (na poziomie aplikacji)build.gradlefirebasePerformanceInstrumentationEnabledwgradle.propertiespliku
Sprawdź, czy pakiet SDK Performance Monitoring nie jestwyłączony za pomocą jednego z tych flag w pliku
AndroidManifest.xml:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
Upewnij się, że Performance Monitoring nie jest wyłączony w czasie działania.
Jeśli nie możesz znaleźć w aplikacji niczego, co jest wyłączone, skontaktuj się z zespołem pomocy Firebase.
Konsola informuje, że pakiet SDK został wykryty, ale nie wyświetla żadnych danych
Performance Monitoring przetwarza dane o zdarzeniach związanych ze skutecznością, zanim wyświetli je w panelu Skuteczność.
Jeśli od pojawienia się komunikatu „Wykryto pakiet SDK” minęło ponad 24 godziny, a nadal nie widzisz danych, sprawdź Panel stanu Firebase, aby dowiedzieć się, czy nie występuje znana awaria. Jeśli nie ma awarii, skontaktuj się z zespołem pomocy Firebase.
Rozwiązywanie ogólnych problemów
Jeśli pakiet SDK został dodany i w aplikacji używasz Performance Monitoring, poniższe wskazówki dotyczące rozwiązywania problemów mogą pomóc w przypadku ogólnych problemów związanych z funkcjami i narzędziami Performance Monitoring.
Aplikacja nie rejestruje zdarzeń związanych z wydajnością
Jeśli nie widzisz komunikatów dziennika dotyczących zdarzeń związanych z wydajnością, wykonaj te czynności:
Sprawdź konfigurację Performance Monitoring wtyczki Gradle:
Sprawdź, czy wtyczka została dodana prawidłowo. Sprawdź te kwestie:
- Wtyczkę (
) dodano w plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradlemodułu (na poziomie aplikacji). - W pliku
build.gradlena poziomie projektu uwzględniono zależność classpath wtyczki ().classpath 'com.google.firebase:perf-plugin:2.0.2'
- Wtyczkę (
Sprawdź, czy wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabledw pliku modułu (na poziomie aplikacji)build.gradlefirebasePerformanceInstrumentationEnabledwgradle.propertiespliku
Sprawdź, czy pakiet SDK Performance Monitoring nie jestwyłączony za pomocą jednego z tych flag w pliku
AndroidManifest.xml:firebase_performance_collection_enabledfirebase_performance_collection_deactivated
Upewnij się, że Performance Monitoring nie jest wyłączony w czasie działania.
Jeśli nie możesz znaleźć w aplikacji niczego, co jest wyłączone, skontaktuj się z zespołem pomocy Firebase.
W Panelu wyników brakuje danych o śladach ekranu
Jeśli brakuje Ci danych dotyczących śladów renderowania ekranu, wykonaj te czynności:
Upewnij się, że używasz najnowszej wersji pakietu Android SDK (22.0.3). Ślady renderowania ekranu są dostępne tylko w przypadku wersji 15.2.0 lub nowszych.
Sprawdź, czy nie została ręcznie wyłączona akceleracja sprzętowa na ekranie.
Upewnij się, że nie używasz DexGuard ani Jacka. Performance Monitoring jest niezgodny z tymi łańcuchami narzędzi.
DexGuard wyłącza automatyczne zbieranie śladów uruchomienia aplikacji, działania aplikacji na pierwszym planie i działania aplikacji w tle. Jeśli jednak aplikacja korzysta z DexGuard, wszelkie ślady kodu niestandardowego powinny działać normalnie.
Jack jest przestarzały i zwykle nie należy go używać w aplikacji.
Na panelu skuteczności brakuje danych śledzenia niestandardowego
Czy widzisz dane o skuteczności automatycznie zbieranych logów czasu, ale nie widzisz ich w przypadku logów czasu z kodu niestandardowego? Wypróbuj te rozwiązania:
Jeśli ślady kodu niestandardowego zostały zaimplementowane za pomocą interfejsu Trace API, sprawdź konfigurację śladów, a zwłaszcza:
- Nazwy śladów kodu niestandardowego i danych niestandardowych muszą spełniać te wymagania: nie mogą zawierać spacji na początku ani na końcu, nie mogą zaczynać się od znaku podkreślenia (
_), a ich maksymalna długość to 32 znaki. - Wszystkie ślady muszą być uruchomione i zatrzymane. Żadne ślady, które nie zostały rozpoczęte, nie zostały zatrzymane lub zostały zatrzymane przed rozpoczęciem, nie zostaną zarejestrowane.
- Nazwy śladów kodu niestandardowego i danych niestandardowych muszą spełniać te wymagania: nie mogą zawierać spacji na początku ani na końcu, nie mogą zaczynać się od znaku podkreślenia (
Jeśli logi czasu niestandardowego kodu zostały instrumentowane za pomocą
@AddTracenotacji, sprawdź konfigurację wtyczki Gradle:Performance MonitoringSprawdź, czy wtyczka została dodana prawidłowo. Sprawdź te kwestie:
- Wtyczkę (
) dodano w plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradlemodułu (na poziomie aplikacji). - W pliku
build.gradlena poziomie projektu uwzględniono zależność classpath wtyczki ().classpath 'com.google.firebase:perf-plugin:2.0.2'
- Wtyczkę (
Sprawdź, czy wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabledw pliku modułu (na poziomie aplikacji)build.gradlefirebasePerformanceInstrumentationEnabledwgradle.propertiespliku
Sprawdź wiadomości w logach, aby upewnić się, że Performance Monitoring rejestruje oczekiwane ślady kodu niestandardowego.
Jeśli Performance Monitoring 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 żądania sieciowego
Jeśli brakuje danych żądań sieciowych, wypróbuj następujące kroki rozwiązywania problemów:
W przypadku aplikacji na Androida wtyczka Performance Monitoring Gradle umożliwia instrumentację zapewniającą automatyczne monitorowanie żądań sieciowych HTTP/S. Sprawdź następujące elementy:
Upewnij się, że dodałeś wtyczkę prawidłowo. Sprawdź konkretnie następujące kwestie:
- Wtyczkę (
) dodano w plikuapply plugin: 'com.google.firebase.firebase-perf' build.gradlemodułu (na poziomie aplikacji). - W pliku
build.gradlena poziomie projektu uwzględniono zależność classpath wtyczki ().classpath 'com.google.firebase:perf-plugin:2.0.2'
- Wtyczkę (
Sprawdź, czy wtyczka nie jest wyłączona za pomocą jednego z tych flag:
instrumentationEnabledw plikubuild.gradlemodułu (na poziomie aplikacji)firebasePerformanceInstrumentationEnabledw plikugradle.properties
Sprawdź, czy biblioteka sieciowa nie jest niezgodna. Performance Monitoring automatycznie zbiera metryki żądań sieciowych korzystających z następujących bibliotek sieciowych: OkHttp 3.xx, Java's URLConnection i Apache HttpClient.
Pamiętaj, że możesz dodać niestandardowe monitorowanie żądań sieciowych.
Pamiętaj:
W zależności od działania kodu i bibliotek sieciowych używanych przez Twój kod usługa Performance Monitoring może raportować tylko ukończone żądania sieciowe. Oznacza to, że otwarte połączenia HTTP/S mogą nie być zgłaszane.
Performance Monitoring nie jest zgodny z DexGuard i Jackiem.
- DexGuard wyłącza monitorowanie żądań sieciowych HTTP/S.
- Jack jest przestarzały i zwykle nie należy go używać w aplikacji.
Performance Monitoring nie raportuje żądań sieciowych z nieprawidłowymi
Content-Typenagłówkami. Żądania sieciowe bez nagłówkówContent-Typebędą jednak nadal akceptowane.
Dane żądań sieciowych nie są agregowane zgodnie z oczekiwaniami
Dowiedz się więcej o tym, jak Performance Monitoring 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 sekcją Najważniejsze problemy na karcie Wydajność na stronie głównej projektu?
Zastąpiliśmy sekcję Najważniejsze problemy sekcją Ostatnie alerty. Jest to kontynuacja wprowadzenia przez nas 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 wpisy alertów w sekcji Ostatnie alerty. Wyświetlane są tylko 3 najnowsze alerty dotyczące 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?
Performance Monitoring obsługuje alerty dotyczące danych, które przekraczają zdefiniowane progi. Aby uniknąć nieporozumień związanych z tymi konfigurowalnymi progami dla danych o skuteczności, usunęliśmy możliwość konfigurowania progów dla problemów.
Co się stało z informacjami w sekcjach Szczegóły i Dane w konsoli Firebase?
Zastąpiliśmy strony Szczegóły i Dane nowo zaprojektowanym, scentralizowanym interfejsem, aby ułatwić rozwiązywanie problemów. Ten nowy interfejs rozwiązywania problemów oferuje te same podstawowe funkcje co sekcje Szczegóły i Dane. Więcej informacji o rozwiązywaniu problemów znajdziesz w sekcji Wyświetlanie większej ilości danych dotyczących konkretnego śledzenia.
Dlaczego liczba próbek nie jest zgodna z moimi oczekiwaniami?
Performance Monitoring zbiera dane dotyczące wydajności z urządzeń użytkowników Twojej aplikacji. Jeśli Twoja aplikacja ma wielu użytkowników lub generuje dużą liczbę zdarzeń związanych z wydajnością, Performance Monitoring może ograniczyć zbieranie danych do podzbioru urządzeń, aby zmniejszyć liczbę przetwarzanych zdarzeń. Limity te są na tyle wysokie, że nawet przy mniejszej liczbie zdarzeń wartości metryk nadal odzwierciedlają doświadczenia użytkownika korzystającego z aplikacji.
Aby zarządzać ilością zbieranych danych, Performance Monitoring korzysta z tych opcji próbkowania:
Ograniczanie szybkości na urządzeniu: aby zapobiec wysyłaniu przez urządzenie nagłych serii śladów, ograniczamy liczbę śladów kodu i żądań sieciowych wysyłanych z urządzenia do 300 zdarzeń co 10 minut. Takie podejście chroni urządzenie przed zapętlonymi instrumentacjami, które mogą wysyłać duże ilości danych o wydajności, i zapobiega zniekształcaniu pomiarów wydajności przez jedno urządzenie.
Próbkowanie dynamiczne: Performance Monitoring codziennie zbiera ograniczoną liczbę śladów kodu i śladów żądań sieciowych dla każdej aplikacji od wszystkich użytkowników aplikacji. Na urządzeniach pobierana jest dynamiczna częstotliwość próbkowania (za pomocą Firebase Remote Config), aby określić, czy losowe urządzenie ma przechwytywać i wysyłać ślady. Urządzenie, które nie zostało wybrane do próbkowania, nie wysyła żadnych zdarzeń. Dynamiczna częstotliwość próbkowania jest zależna od aplikacji i dostosowuje się tak, aby zapewnić, że całkowita objętość zebranych danych pozostanie poniżej limitu.
Projekty, w których włączono integrację z BigQuery, mają wyższy limit liczby śladów żądań sieciowych.
Sesje użytkownika wysyłają dodatkowe, szczegółowe dane z urządzenia użytkownika, co wymaga większych zasobów do przechwytywania i wysyłania danych. Aby zminimalizować wpływ sesji użytkowników, Performance Monitoring może również ograniczyć liczbę sesji.
Ograniczanie szybkości po stronie serwera: Aby mieć pewność, że aplikacje nie przekroczą limitu próbkowania, Performance Monitoring może używać próbkowania po stronie serwera w celu pomijania niektórych zdarzeń odbieranych z urządzeń. Chociaż tego typu ograniczenia nie zmieniają skuteczności naszych wskaźników, mogą powodować drobne zmiany wzorców, w tym:
- Liczba śladów może różnić się od liczby wykonań fragmentu kodu.
- Ślady, które są ściśle powiązane w kodzie, mogą mieć różną liczbę próbek.
Co się stało z kartą Problemy w konsoli?
Zastąpiliśmy kartę Problemy wprowadzeniem alertów, które automatycznie powiadamiają Cię o przekroczeniu ustawionych przez Ciebie progów. Nie musisz już ręcznie sprawdzać Firebase konsoli, aby określić stan progu. Aby dowiedzieć się więcej o alertach, zobacz Konfigurowanie alertów dotyczących problemów z wydajnością.
Co się stało z kartami Na urządzeniu i Sieć w konsoli? Jak mogę wyświetlić ślady na tych stronach?
Przeprojektowaliśmy sekcję Performance Monitoring w Firebase konsoli, aby na karcie Panel wyświetlać kluczowe dane i wszystkie logi czasu w jednym miejscu. W ramach zmian w projekcie usunęliśmy strony Na urządzeniu i Sieć.
Tabela śladów u dołu karty Panel zawiera wszystkie informacje wyświetlane na kartach Na urządzeniu i Sieć, ale z dodatkowymi funkcjami, w tym możliwością sortowania śladów według procentowej zmiany określonych danych. Aby wyświetlić wszystkie metryki i dane dla konkretnego śladu, kliknij nazwę śladu w tabeli śladów.
Ślady możesz wyświetlić w tych podkartach tabeli śladów:
- Logi czasu żądań sieciowych (gotowe i niestandardowe) – karta Żądania sieciowe
- Niestandardowe ślady kodu — podkarta Niestandardowe ślady
- Logi czasu uruchomienia aplikacji, działania aplikacji na pierwszym planie i działania aplikacji w tle – karta Niestandardowe logi czasu
- Logi czasu renderowania ekranu – karta Renderowanie ekranu
- Ślady ładowania strony — podkarta Ładowanie strony
Aby uzyskać szczegółowe informacje na temat tabeli śladów oraz wyświetlania metryk i danych, odwiedź stronę przeglądu konsoli (iOS+ | Android | Internet).
Dlaczego liczba wolno wyrenderowanych i zamrożonych klatek nie jest taka, jakiej się spodziewam?
Powolne renderowanie klatek i klatki zamrożone są obliczane przy założeniu częstotliwości odświeżania urządzenia wynoszącej 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ż na sekundę renderowanych jest mniej klatek. Wolniejsze czasy renderowania mogą powodować zgłaszanie większej liczby wolniejszych lub zamrożonych klatek, ponieważ więcej klatek będzie renderowanych wolniej lub ulegnie zamrożeniu. Jeśli jednak częstotliwość odświeżania urządzenia jest wyższa niż 60 Hz, każda klatka będzie renderowana szybciej. Może to spowodować zgłaszanie mniejszej liczby wolnych lub zamrożonych klatek. Jest to aktualne ograniczenie w pakiecie SDK Performance Monitoring.
Dlaczego nie widzę śladów fragmentów?
Aby oprócz aktywności aplikacji sprawdzić wydajność fragmentów, upewnij się, że Twoja aplikacja korzysta z pakietu Performance Monitoring Android SDK w wersji 20.1.0 lub nowszej. Aby dowiedzieć się więcej, zobacz Dodawanie monitorowania wydajności do aplikacji.
Jak sprawdzić, które ślady są powiązane z fragmentami i aktywnościami?
Każdy ślad fragmentu i aktywności jest oparty na nazwie klasy zdefiniowanej w aplikacji. Każdy ślad ekranu zawiera prefiks st, a po nim nazwę klasy. W konsoli Firebase prefiks jest usuwany. Więcej informacji znajdziesz w artykule Dane o skuteczności renderowania ekranu (aplikacje na Androida i iOS) .
Dlaczego widzę mniej śladów fragmentów niż innych śladów?
Performance Monitoring przeprowadza próbkowanie zdarzeń we wszystkich zdarzeniach zebranych na urządzeniu. Dzięki temu możemy zbierać z urządzeń użytkowników minimalną liczbę zdarzeń potrzebnych do podawania danych o skuteczności.
W jaki sposób otrzymam powiadomienie o problemie z wydajnością renderowania mojej aplikacji?
Performance Monitoring umożliwia skonfigurowanie alertów dotyczących wskaźników, na których Ci zależy. W przypadku wygenerowanych śladów renderowania ekranu możesz skonfigurować alerty, które będą Cię powiadamiać, gdy odsetek powolnych i zamrożonych klatek przekroczy ustawiony przez Ciebie próg.
Po włączeniu wtyczki Gradle czas kompilacji jest długi.Performance Monitoring Jak mogę to poprawić?
Performance Monitoring na Androida korzysta z instrumentacji kodu bajtowego, aby udostępniać niektóre gotowe funkcje, takie jak monitorowanie żądań sieciowych HTTP/S. Proces kompilacji wymaga iteracji wszystkich klas aplikacji (w tym zależności), aby instrumentować kod, który ma kluczowe znaczenie w pomiarze wydajności żądań sieciowych aplikacji.
Oto niektóre z głównych czynników, które mogą wydłużyć czas kompilacji:
- Liczba zajęć lub plików
- rozmiar każdej z tych klas (liczba wierszy kodu);
- Konfiguracja maszyny
- pierwsza kompilacja a kolejna (kolejne kompilacje są zwykle szybsze niż pierwsza);
Aby zoptymalizować czas kompilacji, rozważ podzielenie kodu na moduły.
Począwszy od wersji v1.3.3 wtyczki Performance Monitoring skupiliśmy się na wprowadzaniu znaczących udoskonaleń w przyrostowym przetwarzaniu kompilacji i buforowaniu danych wejściowych biblioteki. Aby korzystać z najnowszych ulepszeń czasu kompilacji, upewnij się, że używasz najnowszej wersji wtyczki (v2.0.2).
Pamiętaj, że możesz wyłączyć wtyczkę Performance Monitoring lokalnie dla kompilacji debugowych, jeśli chcesz uniknąć długiego czasu kompilacji. Jednak podejście to nie jest zalecane w przypadku wersji produkcyjnych, ponieważ może skutkować brakiem pomiarów wydajności żądań sieciowych w aplikacji.
Co zrobić, jeśli podczas kompilacji wystąpią błędy spowodowane przez biblioteki niezgodne z wtyczką Gradle Performance Monitoring?
Performance Monitoring dla systemu Android wykorzystuje instrumentację kodu bajtowego w celu zapewnienia gotowych funkcji, takich jak monitorowanie żądań sieciowych HTTP/S. Proces kompilacji wymaga iteracyjnego przejrzenia wszystkich klas aplikacji (w tym zależności) w celu instrumentacji kodu, który jest kluczowy dla pomiaru wydajności żądań sieciowych Twojej aplikacji.
Jeśli po zintegrowaniu z wtyczką Performance Monitoring pojawiają się błędy kompilacji, takie jak JSR/RET are not supported with
computeFrames option lub podobne, może to być spowodowane zależnością od biblioteki, która jest niezgodna z wtyczką Gradle Performance Monitoring.
Aby obejść ten problem, możesz wykluczyć niezgodne klasy/biblioteki z instrumentacji, wykonując następujące kroki:
- Zaktualizuj wtyczkę Performance MonitoringGradle do najnowszej wersji (minimum 1.4.0).
- Zaktualizuj wtyczkę Android Gradle do wersji 7.2.0 lub nowszej.
- Dodaj następującą flagę do pliku
build.gradlemodułu (na poziomie aplikacji), aby wykluczyć niezgodne klasy/biblioteki z instrumentacji: Aby dowiedzieć się więcej o właściwościandroid { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
excludeinterfejsu APIInstrumentationwtyczki Android Gradle, zapoznaj się z artykułem Instrumentacja.
Jeśli napotkasz błędy kompilacji spowodowane niezgodnością bibliotek, zgłoś je w serwisie Github, aby można je było wykluczyć z instrumentacji wtyczki Performance Monitoring.
Eksport moich danych z Performance Monitoring do BigQuery trwa dłużej niż oczekiwano. Czy to nie dzieje się w czasie rzeczywistym?
Jeśli włączono integrację BigQuery dla Firebase Performance Monitoring, dane zostaną wyeksportowane do BigQuery w ciągu 12–24 godzin od zakończenia dnia (czasu pacyficznego).
Na przykład dane z 19 kwietnia będą dostępne w BigQuery 20 kwietnia między godziną 12:00 a północą (wszystkie daty i godziny podano w strefie czasowej Pacyfiku).
Przetwarzanie i wyświetlanie danych w czasie niemal rzeczywistym
Co oznaczają dane dotyczące wydajności „w czasie niemal rzeczywistym”?
Firebase Performance Monitoring przetwarza zebrane dane o skuteczności na bieżąco, co powoduje, że w konsoli Firebase są one wyświetlane niemal w czasie rzeczywistym. Przetworzone dane są wyświetlane w konsoli w ciągu kilku minut od ich zebrania, stąd określenie „niemal 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 przetwarzaniem w czasie rzeczywistym.
Jak uzyskać dane o skuteczności aplikacji w czasie zbliżonym do rzeczywistego?
Aby korzystać z przetwarzania danych w czasie zbliżonym do rzeczywistego, musisz tylko upewnić się, że Twoja aplikacja używa pakietu SDK w wersji Performance Monitoring, która jest zgodna z przetwarzaniem danych w czasie rzeczywistym.
Oto wersje pakietu SDK zgodne z czasem 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 wersja 26.1.0 lub nowsza)
- Internet – wersja 7.14.0 lub nowsza
Zalecamy używanie najnowszej wersji pakietu SDK, ale każda z wersji wymienionych powyżej umożliwi Performance Monitoring przetwarzanie danych w czasie zbliżonym do rzeczywistego.
Które wersje pakietu Performance Monitoring SDK są zgodne z czasem rzeczywistym?
Oto wersje pakietu SDK 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 wersja 26.1.0 lub nowsza)
- Internet – wersja 7.14.0 lub nowsza
Zalecamy używanie najnowszej wersji pakietu SDK, ale każda z wersji wymienionych powyżej umożliwi Performance Monitoring 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 czasem rzeczywistym?
Jeśli Twoja aplikacja nie używa wersji pakietu SDK zgodnej z czasem rzeczywistym, w Firebasekonsoli nadal będziesz widzieć wszystkie dane o jej działaniu. Wyświetlanie danych o skuteczności będzie jednak opóźnione o około 36 godzin od momentu ich zebrania.
Mam już wersję pakietu SDK zgodną z czasem rzeczywistym, ale niektórzy użytkownicy nadal korzystają ze starszych wersji mojej aplikacji. Czy nadal będę widzieć dane o ich działaniu w konsoli Firebase?
Tak. Niezależnie od tego, z której wersji pakietu SDK korzysta instancja aplikacji, zobaczysz dane o wydajności wszystkich użytkowników.
Jeśli jednak przeglądasz najnowsze dane (starsze niż ok. 36 godzin), wyświetlane dane pochodzą od użytkowników instancji aplikacji korzystających z wersji pakietu SDK zgodnej z czasem rzeczywistym. Starsze dane obejmują jednak dane o skuteczności ze wszystkich wersji aplikacji.
Kontaktowanie się z zespołem pomocy Firebase
Jeśli skontaktujesz się z zespołem pomocy Firebase, zawsze podawaj identyfikator aplikacji Firebase. Identyfikator aplikacji Firebase znajdziesz na karcie Twoje aplikacje w settings ustawieniach projektu.