Na tej stronie znajdziesz wskazówki dotyczące rozwiązywania problemów, które pomogą Ci rozpocząć korzystanie z Monitorowania wydajności, za pomocą funkcji i narzędzi Monitorowania wydajności.
Pierwsze kroki w celu rozwiązania problemów
Te 2 testy to ogólne sprawdzone metody zalecane dla każdego 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 Performance Monitoring przechwytuje zdarzenia wydajności.
Jak wyświetlać komunikaty z dziennika dotyczące zdarzeń związanych z wydajnością
Włącz logowanie debugowania na potrzeby Monitorowania wydajności w czasie kompilacji, dodając
<meta-data>
do plikuAndroidManifest.xml
aplikacji, na przykład:<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
. Korzystanie z Logcat możesz w szczególności zobaczyć śledzenie czasu trwania i sieć HTTP/S, żądania logowania, uruchamiając następujące polecenie:adb logcat -s FirebasePerformance
Sprawdź następujące typy logów, które wskazują, że Monitorowanie wydajności jest rejestrowanie zdarzeń 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. Może to chwilę potrwać momentu aktualizacji danych na pulpicie nawigacyjnym.
Jeśli aplikacja nie rejestruje zdarzeń związanych z wydajnością, zapoznaj się z informacjami na temat rozwiązywania problemów .
2. Sprawdzanie Panelu stanu Firebase
Zajrzyj do Panelu stanu Firebase w przypadku wystąpiła przerwa w działaniu Firebase lub Monitorowania wydajności.
Wprowadzenie do Monitorowania wydajności
Jeśli rozpoczynasz korzystanie z Monitorowania wydajności (iOS+ | Android | Internet) wykonaj podane niżej czynności w celu rozwiązania problemu. mogą pomóc w rozwiązywaniu problemów związanych z wykrywaniem pakietu SDK przez Firebase lub wyświetlaniem Twoje pierwsze dane o skuteczności w konsoli Firebase.
Pakiet SDK został dodany do aplikacji, ale do konsoli nadal wyświetla się prośba o dodanie SDK
Firebase może wykryć, czy pakiet SDK Performance Monitoring został dodany do aplikacji gdy otrzymuje informacje o zdarzeniach (np. interakcje w aplikacji). Zwykle w ciągu 10 minut od uruchomienia aplikacji dane Wydajność panel konsoli Firebase wyświetla się komunikat „Wykryto pakiet SDK” . Potem, w ciągu 30 min, na pulpicie nawigacyjnym wyświetlane są początkowo przetworzone dane.
Jeśli od dodania najnowszej wersji pakietu SDK do usługi minęło więcej niż 10 minut w aplikacji i nadal nie widzisz żadnych zmian, sprawdź dziennik , aby upewnić się, że Monitorowanie wydajności rejestruje zdarzeń. Wypróbuj odpowiednie rozwiązania opisane poniżej, aby rozwiązywanie problemów z komunikatem wykrywania opóźnionego pakietu SDK.
Aplikacja rejestruje zdarzenia: rozwiązywanie problemów
Upewnij się, że używasz pakietu SDK Performance Monitoring na Androida w wersji 19.1.0 lub nowszej (lub Firebase BoM 26.3.0 lub nowszej), zobacz informacje o wersji.
Jeśli nadal tworzysz aplikacje lokalnie, spróbuj wygenerować więcej zdarzeń dla danych kolekcja:
- Generowanie zdarzeń przez przełączanie aplikacji między tłem a pierwszym planem wielokrotnie i korzystając z aplikacji, przechodząc na różne ekrany, lub uruchamiać żądania sieciowe.
Upewnij się, że Twoja konfiguracja Firebase (
google-services.json
) to został prawidłowo dodany do aplikacji i czy plik nie został zmodyfikowany. W szczególności sprawdź następujące kwestie:Nazwa pliku konfiguracyjnego nie zawiera dodatkowych znaków, takich jak
(2)
Plik konfiguracyjny znajduje się w katalogu module (poziom aplikacji) aplikacji.
identyfikator aplikacji Firebase na Androida (
mobilesdk_app_id
) wymieniony w pliku konfiguracyjnym; jest właściwe dla Twojej aplikacji. Odszukaj swój identyfikator aplikacji Firebase w sekcji Twoje aplikacje. na karcie Twojego projektu settings .
Jeśli coś jest nie tak z plikiem konfiguracyjnym w Twojej aplikacji, wykonaj te czynności:
Usuń plik konfiguracyjny, który znajduje się obecnie w aplikacji.
Postępuj zgodnie z tymi instrukcjami, aby: pobierz nowy plik konfiguracyjny i dodaj go do swojej aplikacji na Androida.
Jeśli pakiet SDK rejestruje zdarzenia i wygląda na to, że wszystko jest prawidłowo skonfigurowane, ale nadal nie widzisz komunikatu wykrywania pakietu SDK ani przetworzonych danych (po 10 minutach), skontaktuj się z zespołem pomocy Firebase.
Aplikacja nie rejestruje zdarzeń: instrukcje rozwiązywania problemów
Sprawdź konfigurację wtyczki do monitorowania wydajności w ten sposób:
Upewnij się, że dodał . W szczególności sprawdź następujące kwestie:
- Wtyczka została dodana
(
) w plikapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - Uwzględniono zależność ścieżki klasy dla wtyczki
(
) w plikuclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
na poziomie projektu.
- Wtyczka została dodana
(
Upewnij się, że wtyczka nie jest wyłączone za pomocą żadnego z tych flagi:
instrumentationEnabled
w Twoim module (na poziomie aplikacji)build.gradle
plikfirebasePerformanceInstrumentationEnabled
w:gradle.properties
plik
Sprawdź, czy pakiet SDK Performance Monitoring nie jest wyłączono za pomocą jednej z następujących flag w pliku
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Upewnij się, że Monitorowanie wydajności nie jest wyłączone na w czasie działania.
Jeśli nie możesz znaleźć niczego, co jest wyłączone w aplikacji, skontaktuj się z zespołem pomocy Firebase.
Konsola informuje, że pakiet SDK został wykryty, ale nie wyświetlają się żadne dane
Monitorowanie wydajności przetwarza dane zdarzeń skuteczności przed ich wyświetleniem w Panel Skuteczność.
Jeśli od „wykrycia pakietu SDK” minęły ponad 24 godziny” pojawienie się komunikatu, i nadal nie widzisz danych, sprawdź Panelu stanu Firebase w przypadku wystąpienia znanej awarii. 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 masz już w aplikacji dodany pakiet SDK i korzystasz z monitorowania wydajności, podane niżej wskazówki mogą pomóc w rozwiązaniu ogólnych problemów, Funkcje i narzędzia do monitorowania wydajności.
Aplikacja nie zapisuje danych wydarzenia związane z występami
Jeśli nie widzisz komunikatów dziennika dotyczących skuteczności zdarzeń, spróbuj wykonać te czynności:
Sprawdź konfigurację wtyczki do monitorowania wydajności w ten sposób:
Upewnij się, że dodał . W szczególności sprawdź następujące kwestie:
- Wtyczka została dodana
(
) w plikapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - Uwzględniono zależność ścieżki klasy dla wtyczki
(
) w plikuclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
na poziomie projektu.
- Wtyczka została dodana
(
Upewnij się, że wtyczka nie jest wyłączone za pomocą żadnego z tych flagi:
instrumentationEnabled
w Twoim module (na poziomie aplikacji)build.gradle
plikfirebasePerformanceInstrumentationEnabled
w:gradle.properties
plik
Sprawdź, czy pakiet SDK Performance Monitoring nie jest wyłączono za pomocą jednej z następujących flag w pliku
AndroidManifest.xml
:firebase_performance_collection_enabled
firebase_performance_collection_deactivated
Upewnij się, że Monitorowanie wydajności nie jest wyłączone na w czasie działania.
Jeśli nie możesz znaleźć niczego, co jest wyłączone w aplikacji, skontaktuj się z zespołem pomocy Firebase.
Panel wyników to brakujące dane zrzutu ekranu
Jeśli brakuje danych do śledzenia renderowania ekranu, wypróbuj te rozwiązania jak rozwiązać problem:
Upewnij się, że używasz najnowszej wersji pakietu Android SDK (wersja 21.0.1). Ślady renderowania ekranu są dostępne tylko w przypadku wersji 15.2.0 lub nowszej.
Upewnij się, że nie wyłączono ręcznie Sprzętu Przyspieszenie dla danego ekranu.
Upewnij się, że nie używasz DexGuard ani Jack. Monitorowanie wydajności to które są niezgodne z tymi łańcuchami narzędzi.
DexGuard wyłącza automatyczne zbieranie danych o uruchomieniach aplikacji na pierwszym planie, i śledzenia aplikacji w tle. Jednak każda niestandardowe ślady kodu powinno działać normalnie, jeśli aplikacja korzysta z DexGuard.
Interfejs Jack został wycofany i zasadniczo nie należy używać w aplikacji.
Panel wyników to brak niestandardowych danych logu czasu
Czy widzisz dane o wydajności dla automatycznie zbieranych logów czasu, ale nie dla niestandardowe ślady kodu? Aby spróbować go rozwiązać, wykonaj te czynności:
Jeśli zostały skonfigurowane niestandardowe ślady kodu za pomocą metody Trace API, sprawdź konfigurację logów czasu, zwłaszcza te:
- Nazwy niestandardowych logów czasu kodu i wskaźników niestandardowych muszą spełniać te wymagania
wymagania: brak odstępu na początku i na końcu, bez podkreślenia na początku
(
_
) znaków, a maksymalna długość to 32 znaki. - Wszystkie logi czasu muszą być uruchomione i zatrzymane. Każdy ślad, który nie został uruchomiony, Zatrzymane lub zatrzymane przed rozpoczęciem nie będą rejestrowane.
- Nazwy niestandardowych logów czasu kodu i wskaźników niestandardowych muszą spełniać te wymagania
wymagania: brak odstępu na początku i na końcu, bez podkreślenia na początku
(
Jeśli niestandardowe ślady kodu były instrumentowane za pomocą
@AddTrace
, sprawdź konfigurację wtyczki do monitorowania wydajności do śledzenia wydajności:Upewnij się, że dodał . W szczególności sprawdź następujące kwestie:
- Wtyczka została dodana
(
) w plikapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - Uwzględniono zależność ścieżki klasy dla wtyczki
(
) w plikuclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
na poziomie projektu.
- Wtyczka została dodana
(
Upewnij się, że wtyczka nie jest wyłączone za pomocą żadnego z tych flagi:
instrumentationEnabled
w Twoim module (na poziomie aplikacji)build.gradle
plikfirebasePerformanceInstrumentationEnabled
w:gradle.properties
plik
Sprawdź komunikaty dziennika i upewnij się, że Monitorowanie wydajności rejestruje oczekiwane ślady kodu niestandardowego.
Jeśli Monitorowanie wydajności rejestruje zdarzenia, ale po 24 godzinach nie wyświetlają się żadne dane, skontaktuj się z zespołem pomocy Firebase.
Panel wyników nie ma danych żą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 umożliwia instrumentację, która oferuje automatyczne monitorowanie Żądania sieciowe HTTP/S. Sprawdź te kwestie:
Upewnij się, że dodał . W szczególności sprawdź następujące kwestie:
- Wtyczka została dodana
(
) w plikapply plugin: 'com.google.firebase.firebase-perf' build.gradle
modułu (na poziomie aplikacji). - Uwzględniono zależność ścieżki klasy dla wtyczki
(
) w plikuclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
na poziomie projektu.
- Wtyczka została dodana
(
Upewnij się, że wtyczka nie jest wyłączone za pomocą żadnego z tych flagi:
instrumentationEnabled
w Twoim module (na poziomie aplikacji)build.gradle
plikfirebasePerformanceInstrumentationEnabled
w:gradle.properties
plik
Sprawdź niezgodność biblioteki sieciowej. Automatyczne monitorowanie wydajności zbiera dane o żądaniach sieciowych, które korzystają z tych sieci biblioteki: OkHttp 3.x.x, Java URLConnection i Apache HttpClient.
Pamiętaj, że możesz dodać monitorowanie niestandardowe sieci .
Pamiętaj:
W zależności od działania Twojego kodu i bibliotek sieciowych używanych przez Monitorowanie wydajności może generować tylko raporty dotyczące żądań sieciowych, które są . Oznacza to, że otwarte połączenia HTTP/S mogą nie mogą zostać zgłoszone.
Monitorowanie wydajności nie jest zgodne z urządzeniami DexGuard i Jack.
- DexGuard wyłącza monitorowanie żądań sieciowych HTTP/S.
- Interfejs Jack został wycofany i zasadniczo nie należy używać w aplikacji.
Monitorowanie wydajności nie raportuje żądań sieciowych z nieprawidłowymi Nagłówki
Content-Type
. Żądania sieciowe bezContent-Type
nagłówki 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 żądania sieciowe w sekcji wzorców adresów URL.
Możesz też wypróbować niestandardowy 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 ramach naszej Niedawno wprowadziliśmy alerty, które automatycznie powiadamiają Cię, gdy przekraczanie ustalonych progów. Problemy zostały wycofane i zastąpione alertami.
Alert u góry karty Skuteczność filtruje selektor aplikacji wpisów w sekcji Najnowsze alerty. Tylko trzy najnowsze alerty dotyczące witryny zobaczysz wybrane aplikacje.
Więcej informacji o alertach: Skonfiguruj alerty o problemach 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 dla wskaźników przekraczających określonych progów. Aby uniknąć nieporozumień z tymi konfigurowalnymi progami dla danych o skuteczności, usunęliśmy możliwość konfigurowania progów dla problemy.
Co się stało z informacjami o szczegółach i danych w konsoli Firebase?
Zastąpiliśmy strony Szczegóły i Dane interfejsu użytkownika (UI), aby usprawnić rozwiązywanie problemów. Ten nowy interfejsu rozwiązywania problemów ma te same główne funkcje, co Szczegóły i Oferowane wskaźniki. Więcej informacji o rozwiązywaniu problemów: Wyświetl więcej danych dla konkretnego 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żą wydajność, Monitorowanie wydajności może ograniczyć gromadzenie danych do podzbioru urządzeń, zmniejsza liczbę przetworzonych zdarzeń. Limity te są na tyle wysokie, że Nawet przy mniejszej liczbie zdarzeń wartości danych są reprezentatywne do wygody użytkownika.
Aby zarządzać ilością gromadzonych danych, Monitorowanie wydajności korzysta z następujących funkcji: opcje próbkowania:
Ograniczenie szybkości na urządzeniu: aby zapobiec wysyłaniu przez urządzenie nagłych wybuchów ograniczamy liczbę logów czasu oraz żądań sieciowych wysyłanych z do 300 zdarzeń co 10 minut. Ta metoda chroni urządzenie przed zapętlone instrumenty, które mogą wysyłać duże ilości danych dotyczących wydajności, zapobiega zaburzaniu pomiarów wydajności przez pojedyncze urządzenie.
Próbkowanie dynamiczne: Monitorowanie wydajności rejestruje limit wynoszący ok. 100 mln zdarzeń w przypadku logów czasu kodu i 100 MB w przypadku logów czasu żądań sieciowych na aplikację dziennie na wszystkich użytkowników aplikacji. Częstotliwość próbkowania dynamicznego jest pobierana z urządzeń (przy użyciu funkcji Zdalna konfiguracja Firebase), aby określić, czy przypadkowe urządzenie powinno przechwytywać i wysyłać ślady. Urządzenie, które nie zostało wybrane do próbkowania, nie wysyłanie zdarzeń. Częstotliwość próbkowania dynamicznego zależy od aplikacji i dostosowuje się aby ogólna ilość zgromadzonych danych nie przekraczała limitu.
Sesje użytkownika wysyłają dodatkowe, szczegółowe dane z urządzenia użytkownika, co wymaga więcej zasobów do rejestrowania i wysyłania danych. Aby zminimalizować wpływ użytkowników Monitorowanie wydajności może również ograniczać liczbę sesji.
Ograniczenie szybkości po stronie serwera: aby mieć pewność, że aplikacje nie przekroczą próbkowania. Monitorowanie wydajności może wykorzystać próbkowanie po stronie serwera, aby pominąć niektóre zdarzenia otrzymanych z urządzeń. Chociaż ten typ ograniczenia nie zmienia na skuteczność naszych wskaźników, może to spowodować niewielkie zmiany wzorców, w tym :
- Liczba śladów może się różnić od tego, ile razy jeden gdy wykonano kod.
- Ślady, które są ściśle sprzężone w kodzie, mogą zawierać różną liczbę przykłady.
Co się stało z kartą Problemy w konsoli?
Zastąpiliśmy kartę Problemy funkcją Alerty, automatycznie powiadamia Cię o przekroczeniu ustawionych progów. Ty nie nie muszą już ręcznie sprawdzać w konsoli Firebase stanu odpowiedni próg. 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?
Zmodyfikowaliśmy sekcję Monitorowanie wydajności w konsoli Firebase, Karta Panel zawiera w jednym miejscu najważniejsze dane i wszystkie logi czasu. Jako Usunęliśmy też strony Na urządzeniu i Sieć.
Tabela logów czasu na dole karty Dashboard (Panel) zawiera takie same informacje widoczne na kartach Na urządzeniu i Sieć, ale niektóre Dodaliśmy funkcje, w tym możliwość sortowania logów czasu dla konkretnego wskaźnika. Aby wyświetlić wszystkie dane związane z określonym hasłem logu czasu, kliknij nazwę logu czasu 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 w strona przeglądu konsoli (iOS+ | Android | Sieć).
Dlaczego liczba spowolnionych i zablokowanych klatek jest niezgodna z oczekiwaniami?
Klatki renderowane w powolnym renderowaniu i zablokowane są obliczane na założonym urządzeniu 60 Hz. Jeśli częstotliwość odświeżania urządzenia jest niższa niż 60 Hz, każda klatka będzie mieć wolniejszy czas renderowania, ponieważ renderowanych jest mniej klatek na sekundę. Dłuższe renderowanie może spowodować, że raportowanych będzie więcej spowolnionych lub zablokowanych klatek ponieważ więcej klatek będzie renderowany wolniej lub zostanie zablokowany. Jeśli jednak urządzenie częstotliwość odświeżania jest większa niż 60 Hz, więc każda klatka renderuje się szybciej. Może to spowodować uwzględnianie w raportach mniejszej liczby spowolnionych lub zablokowanych klatek. To jest bieżąca w pakiecie SDK Performance Monitoring.
Dlaczego nie widzę zrzutów fragmentów?
Aby oprócz aktywności w aplikacji zobaczyć skuteczność fragmentów, upewnij się, aplikacja korzysta z pakietu SDK Performance Monitoring na Androida w wersji 20.1.0 lub nowszej. Aby się uczyć 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 opierają się na nazwie klasy zgodnie z definicją w Twojej aplikacji. Każdy zrzut ekranu zawiera prefiks st po którym następuje nazwa zajęć. W konsoli Firebase prefiks to usunięto. 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. Takie podejście pozwala nam rejestrować minimalną liczbę zdarzeń z urządzeń użytkowników aby dostarczać dane o skuteczności.
Jak otrzymam powiadomienie o problemie z wydajnością renderowania aplikacji?
Dzięki monitorowaniu wydajności możesz skonfigurować alerty dotyczące danych, na których Ci zależy. Dla wygenerowanych śledzenia renderowania ekranu, możesz skonfigurować alerty, które będą powiadamiać Cię, gdy odsetek spowolnionych i zablokowanych klatek przekracza ustawiony próg.
Moje czasy kompilacji są wysokie po włączeniu wtyczki Gradle monitorowania wydajności. Jak Czy mogę to poprawić?
Monitorowanie wydajności na urządzeniach z Androidem wykorzystuje instrumentację kodu bajtowego do zapewniania gotowe funkcje, takie jak monitorowania żądań sieciowych HTTP/S. Ten proces stanowi część kompilacji i wymaga iteracji we wszystkich klasach. (w tym zależności) w celu dostosowania kodu, który ma kluczowe znaczenie mierzyć wydajność żą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
- Kompilacja wstępna i następna (kolejne kompilacje są zwykle szybciej niż początkowa kompilacja)
Aby zoptymalizować czas kompilacji, weź pod uwagę modularyzacji kodu.
Od 1.3.3 koncentrowaliśmy się na tym, ulepszenia w przyrostowym przetwarzaniu kompilacji i buforowaniu danych wejściowych biblioteki. Aby uzyskać najnowsze ulepszenia czasu kompilacji, użyj najnowsza wersja wtyczka (wersja 1.4.2).
Pamiętaj, że możesz wyłączyć Wtyczka Performance Monitoring dla kompilacji do debugowania lokalnie, jeśli chcesz uniknąć długich czasów kompilacji. Pamiętaj jednak: to podejście nie jest zalecane w przypadku kompilacji produkcyjnych, ponieważ może spowodować braki w pomiarach wydajności dla żą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 urządzeniach z Androidem wykorzystuje instrumentację kodu bajtowego do zapewniania gotowe funkcje, takie jak monitorowania żądań sieciowych HTTP/S. Ten proces stanowi część kompilacji i wymaga iteracji we wszystkich klasach. (w tym zależności) w celu dostosowania kodu, który ma kluczowe znaczenie mierzyć wydajność żądań sieciowych aplikacji.
Jeśli po integracji z wtyczką Performance Monitoring pojawią się błędy kompilacji, takie jak JSR/RET are not supported with
computeFrames option
, lub podobne,
przyczyną może być również zależność od niezgodnej biblioteki.
za pomocą wtyczki do monitorowania wydajności
do Gradle.
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 instrumentacji:android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
Więcej informacji o właściwościexclude
w interfejsie APIInstrumentation
wtyczki Androida do obsługi Gradle znajdziesz w sekcji Instrumentacja.
Zgłoś problem w serwisie GitHub o błędach kompilacji spowodowanych niezgodnymi bibliotekami. Dzięki temu mogą one również być wykluczone z narzędzi do monitorowania wydajności.
Eksportowanie danych z Monitorowania wydajności trwa dłużej niż oczekiwano BigQuery; Czy to nie czas rzeczywisty?
Jeśli masz włączoną integrację BigQuery z Monitorowaniem wydajności Firebase, Twoje dane zostanie wyeksportowana do BigQuery w ciągu 12–24 godzin po zakończeniu dnia (czas pacyficzny czas).
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 oznacza „czas zbliżony do rzeczywistego” i wydajności?
Monitorowanie wydajności Firebase przetwarza gromadzone dane o skuteczności na bieżąco, które pozwala wyświetlić dane w czasie zbliżonym do rzeczywistego w konsoli Firebase. Przetworzono pojawia się w konsoli w ciągu kilku minut od ich zebrania, dlatego w czasie zbliżonym do rzeczywistego.
Aby korzystać z przetwarzania danych w czasie zbliżonym do rzeczywistego, upewnij się, że aplikacja używa pakiet SDK kompatybilny z reklamami w czasie rzeczywistym wersji.
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, wystarczy upewnić się, aplikacja korzysta z pakietu SDK Performance Monitoring w wersji zgodnej z przetwarzania danych.
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
Zalecamy korzystanie z najnowszej wersji SDK, ale wymienionych powyżej wersji umożliwi Monitorowi wydajności przetwarzanie danych niemal w rzeczywistości obecnie się znajdujesz.
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
Zalecamy korzystanie z najnowszej wersji SDK, ale wymienionych powyżej wersji umożliwi Monitorowi wydajności przetwarzanie danych niemal w rzeczywistości obecnie się znajdujesz.
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 czasem rzeczywistym, nadal zobaczysz wszystkie dane o wydajności aplikacji w konsoli Firebase. Ekran dane dotyczące skuteczności będą opóźnione o około 36 godzin od momentu ich kolekcji.
Mam zaktualizowany pakiet SDK do wersji zgodnej w czasie rzeczywistym, ale niektórzy użytkownicy nadal w starszych wersjach aplikacji. Czy nadal będę widzieć ich wyniki w konsoli Firebase?
Tak. Niezależnie od tego, której wersji pakietu SDK używa instancja aplikacji, dane o skuteczności od wszystkich użytkowników.
Jeśli jednak przeglądasz najnowsze dane (sprzed mniej niż 36 godzin), wyświetlane dane pochodzą od użytkowników instancji aplikacji w czasie rzeczywistym, zgodnej wersji pakietu SDK. Niedawne dane obejmują jednak dane o skuteczności ze wszystkich wersji aplikacji.
Kontakt z zespołem pomocy Firebase
Jeśli skontaktuj się z zespołem pomocy Firebase, zawsze dodawaj identyfikator aplikacji Firebase. Znajdź swój identyfikator aplikacji Firebase w Karta Twoje aplikacje na settings Projekt