Auf dieser Seite finden Sie Tipps zur Fehlerbehebung für den Einstieg in die Leistungsüberwachung oder die Verwendung von Leistungsüberwachungsfunktionen und -tools.
Erste Prüfungen zur Fehlerbehebung
Die folgenden zwei Überprüfungen sind allgemeine Best Practices, die jedem vor der weiteren Fehlerbehebung empfohlen werden.
1. Überprüfen Sie die Protokollmeldungen auf Leistungsereignisse
Überprüfen Sie Ihre Protokollnachrichten, um sicherzustellen, dass das Performance Monitoring SDK Leistungsereignisse erfasst.
Aktivieren Sie die Debug-Protokollierung für die Leistungsüberwachung zur Erstellungszeit, indem Sie ein
<meta-data>
-Element zurAndroidManifest.xml
Datei Ihrer App hinzufügen, etwa so:<application> <meta-data android:name="firebase_performance_logcat_enabled" android:value="true" /> </application>
Überprüfen Sie Ihre Protokollnachrichten auf etwaige Fehlermeldungen.
Performance Monitoring markiert seine Protokollnachrichten mit
FirebasePerformance
. Mithilfe der Logcat-Filterung können Sie die Protokollierung der Dauerverfolgung und HTTP/S-Netzwerkanforderungen gezielt anzeigen, indem Sie den folgenden Befehl ausführen:adb logcat -s FirebasePerformance
Suchen Sie nach den folgenden Protokolltypen, die darauf hinweisen, dass Performance Monitoring Leistungsereignisse protokolliert:
-
Logging trace metric: TRACE_NAME , FIREBASE_PERFORMANCE_CONSOLE_URL
-
Logging network request trace: URL
-
Klicken Sie auf die URL, um Ihre Daten in der Firebase-Konsole anzuzeigen. Es kann einen Moment dauern, bis die Daten im Dashboard aktualisiert werden.
Wenn Ihre App keine Leistungsereignisse protokolliert, lesen Sie die Tipps zur Fehlerbehebung .
2. Überprüfen Sie das Firebase-Status-Dashboard
Überprüfen Sie das Firebase-Status-Dashboard , falls ein bekannter Ausfall für Firebase oder die Leistungsüberwachung vorliegt.
Erste Schritte mit der Leistungsüberwachung
Wenn Sie mit der Leistungsüberwachung ( iOS+ | Android | Web ) beginnen, können die folgenden Tipps zur Fehlerbehebung bei Problemen hilfreich sein, bei denen Firebase das SDK erkennt oder Ihre ersten Leistungsdaten in der Firebase-Konsole anzeigt.
Firebase kann erkennen, ob Sie das Performance Monitoring SDK erfolgreich zu Ihrer App hinzugefügt haben, wenn es Ereignisinformationen (z. B. App-Interaktionen) von Ihrer App empfängt. Normalerweise zeigt das Performance- Dashboard der Firebase-Konsole innerhalb von 10 Minuten nach dem Start Ihrer App die Meldung „SDK erkannt“ an. Anschließend zeigt das Dashboard innerhalb von 30 Minuten die ersten verarbeiteten Daten an.
Wenn seit dem Hinzufügen der neuesten SDK-Version zu Ihrer App mehr als 10 Minuten vergangen sind und Sie immer noch keine Änderung feststellen, überprüfen Sie Ihre Protokollmeldungen , um sicherzustellen, dass die Leistungsüberwachung Ereignisse protokolliert. Führen Sie die unten beschriebenen Schritte zur Fehlerbehebung aus, um eine verzögerte SDK-Erkennungsmeldung zu beheben.
Stellen Sie sicher, dass Sie das Performance Monitoring Android SDK 19.1.0 oder höher (oder Firebase BoM 26.3.0 oder höher) verwenden, siehe Versionshinweis .
Wenn Sie noch lokal entwickeln, versuchen Sie, weitere Ereignisse für die Datenerfassung zu generieren:
- Generieren Sie Ereignisse, indem Sie Ihre App mehrmals zwischen Hintergrund und Vordergrund wechseln, mit Ihrer App interagieren, indem Sie über Bildschirme navigieren, und/oder Netzwerkanfragen auslösen.
Stellen Sie sicher, dass Ihre Firebase-Konfigurationsdatei (
google-services.json
) korrekt zu Ihrer App hinzugefügt wurde und Sie die Datei nicht geändert haben. Überprüfen Sie insbesondere Folgendes:An den Namen der Konfigurationsdatei werden keine zusätzlichen Zeichen wie
(2)
angehängt.Die Konfigurationsdatei befindet sich im Modulverzeichnis (App-Ebene) Ihrer App.
Die in der Konfigurationsdatei aufgeführte Firebase-Android-App-ID (
mobilesdk_app_id
) ist für Ihre App korrekt. Finden Sie Ihre Firebase-App-ID auf der Karte „Ihre Apps“ Ihrer Projekteinstellungen
Wenn mit der Konfigurationsdatei in Ihrer App etwas nicht stimmt, versuchen Sie Folgendes:
Löschen Sie die Konfigurationsdatei, die Sie derzeit in Ihrer App haben.
Befolgen Sie diese Anweisungen , um eine neue Konfigurationsdatei herunterzuladen und Ihrer Android-App hinzuzufügen.
Wenn das SDK Ereignisse protokolliert und alles korrekt eingerichtet zu sein scheint, Sie aber immer noch keine SDK-Erkennungsmeldung oder verarbeitete Daten sehen (nach 10 Minuten), wenden Sie sich an den Firebase-Support .
Überprüfen Sie die Einrichtung des Performance Monitoring Gradle-Plugins wie folgt:
Stellen Sie sicher, dass Sie das Plugin korrekt hinzugefügt haben . Überprüfen Sie insbesondere Folgendes:
- Sie haben das Plugin (
) in dieapply plugin: 'com.google.firebase.firebase-perf' build.gradle
Datei Ihres Moduls (App-Ebene) eingefügt. - Sie haben die Klassenpfadabhängigkeit für das Plugin (
) in Ihreclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
Datei auf Projektebene eingefügt.
- Sie haben das Plugin (
Stellen Sie sicher, dass das Plugin nicht durch eines der folgenden Flags deaktiviert ist :
-
instrumentationEnabled
in derbuild.gradle
Datei Ihres Moduls (App-Ebene). -
firebasePerformanceInstrumentationEnabled
in Ihrergradle.properties
-Datei
-
Stellen Sie sicher, dass das Performance Monitoring SDK nicht durch eines der folgenden Flags in Ihrer
AndroidManifest.xml
Datei deaktiviert ist :-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
Stellen Sie sicher, dass die Leistungsüberwachung zur Laufzeit nicht deaktiviert ist .
Wenn Sie in Ihrer App nichts finden, was deaktiviert ist, wenden Sie sich an den Firebase-Support .
Die Leistungsüberwachung verarbeitet Leistungsereignisdaten, bevor sie im Leistungs- Dashboard angezeigt wird.
Wenn seit dem Erscheinen der Meldung „SDK erkannt“ mehr als 24 Stunden vergangen sind und Sie immer noch keine Daten sehen, überprüfen Sie das Firebase-Status-Dashboard auf einen bekannten Ausfall. Wenn kein Ausfall vorliegt, wenden Sie sich an den Firebase-Support .
Allgemeine Fehlerbehebung
Wenn Sie das SDK erfolgreich hinzugefügt haben und die Leistungsüberwachung in Ihrer App verwenden, können die folgenden Tipps zur Fehlerbehebung bei allgemeinen Problemen im Zusammenhang mit Leistungsüberwachungsfunktionen und -tools hilfreich sein.
Wenn Sie keine Protokollmeldungen zu Leistungsereignissen sehen, versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Überprüfen Sie die Einrichtung des Performance Monitoring Gradle-Plugins wie folgt:
Stellen Sie sicher, dass Sie das Plugin korrekt hinzugefügt haben . Überprüfen Sie insbesondere Folgendes:
- Sie haben das Plugin (
) in dieapply plugin: 'com.google.firebase.firebase-perf' build.gradle
Datei Ihres Moduls (App-Ebene) eingefügt. - Sie haben die Klassenpfadabhängigkeit für das Plugin (
) in Ihreclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
Datei auf Projektebene eingefügt.
- Sie haben das Plugin (
Stellen Sie sicher, dass das Plugin nicht durch eines der folgenden Flags deaktiviert ist :
-
instrumentationEnabled
in derbuild.gradle
Datei Ihres Moduls (App-Ebene). -
firebasePerformanceInstrumentationEnabled
in Ihrergradle.properties
-Datei
-
Stellen Sie sicher, dass das Performance Monitoring SDK nicht durch eines der folgenden Flags in Ihrer
AndroidManifest.xml
Datei deaktiviert ist :-
firebase_performance_collection_enabled
-
firebase_performance_collection_deactivated
-
Stellen Sie sicher, dass die Leistungsüberwachung zur Laufzeit nicht deaktiviert ist .
Wenn Sie in Ihrer App nichts finden, was deaktiviert ist, wenden Sie sich an den Firebase-Support .
Wenn Ihnen Daten für Bildschirmrendering-Spuren fehlen, versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Stellen Sie sicher, dass Sie die neueste Version des Android SDK (v20.4.1) verwenden. Bildschirm-Rendering-Spuren sind nur mit v15.2.0 oder höher verfügbar.
Stellen Sie sicher, dass Sie die Hardwarebeschleunigung für einen Bildschirm nicht manuell deaktiviert haben.
Stellen Sie sicher, dass Sie nicht DexGuard oder Jack verwenden. Die Leistungsüberwachung ist mit diesen Toolchains nicht kompatibel.
DexGuard deaktiviert die automatische Erfassung von App-Start-, App-im-Vordergrund- und App-im-Hintergrund-Traces. Allerdings sollten sich alle benutzerdefinierten Code-Traces normal verhalten, wenn Ihre App DexGuard verwendet.
Jack ist veraltet und sollte im Allgemeinen nicht in Ihrer App verwendet werden.
Sehen Sie Leistungsdaten für automatisch erfasste Traces , aber nicht für benutzerdefinierte Code-Traces ? Versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Wenn Sie benutzerdefinierte Code-Traces über die Trace-API instrumentiert haben, überprüfen Sie die Einrichtung der Traces, insbesondere Folgendes:
- Namen für benutzerdefinierte Code-Traces und benutzerdefinierte Metriken müssen die folgenden Anforderungen erfüllen: keine führenden oder nachgestellten Leerzeichen, kein führender Unterstrich (
_
) und die maximale Länge beträgt 32 Zeichen. - Alle Traces müssen gestartet und gestoppt werden. Jede Ablaufverfolgung, die nicht gestartet, nicht gestoppt oder vor dem Start gestoppt wurde, wird nicht protokolliert.
- Namen für benutzerdefinierte Code-Traces und benutzerdefinierte Metriken müssen die folgenden Anforderungen erfüllen: keine führenden oder nachgestellten Leerzeichen, kein führender Unterstrich (
Wenn Sie benutzerdefinierte Code-Traces über
@AddTrace
Notation instrumentiert haben, überprüfen Sie die Einrichtung des Performance Monitoring Gradle-Plugins:Stellen Sie sicher, dass Sie das Plugin korrekt hinzugefügt haben . Überprüfen Sie insbesondere Folgendes:
- Sie haben das Plugin (
) in dieapply plugin: 'com.google.firebase.firebase-perf' build.gradle
Datei Ihres Moduls (App-Ebene) eingefügt. - Sie haben die Klassenpfadabhängigkeit für das Plugin (
) in Ihreclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
Datei auf Projektebene eingefügt.
- Sie haben das Plugin (
Stellen Sie sicher, dass das Plugin nicht durch eines der folgenden Flags deaktiviert ist :
-
instrumentationEnabled
in derbuild.gradle
Datei Ihres Moduls (App-Ebene). -
firebasePerformanceInstrumentationEnabled
in Ihrergradle.properties
-Datei
-
Überprüfen Sie Ihre Protokollmeldungen, um sicherzustellen, dass die Leistungsüberwachung erwartete benutzerdefinierte Codespuren protokolliert.
Wenn Performance Monitoring Ereignisse protokolliert, aber nach 24 Stunden keine Daten angezeigt werden, wenden Sie sich an den Firebase-Support .
Wenn Ihnen Netzwerkanforderungsdaten fehlen, versuchen Sie die folgenden Schritte zur Fehlerbehebung:
Für Android-Apps ermöglicht das Performance Monitoring Gradle-Plugin eine Instrumentierung, die eine automatische Überwachung von HTTP/S-Netzwerkanforderungen ermöglicht. Überprüfe das Folgende:
Stellen Sie sicher, dass Sie das Plugin korrekt hinzugefügt haben . Überprüfen Sie insbesondere Folgendes:
- Sie haben das Plugin (
) in dieapply plugin: 'com.google.firebase.firebase-perf' build.gradle
Datei Ihres Moduls (App-Ebene) eingefügt. - Sie haben die Klassenpfadabhängigkeit für das Plugin (
) in Ihreclasspath 'com.google.firebase:perf-plugin:1.4.2' build.gradle
Datei auf Projektebene eingefügt.
- Sie haben das Plugin (
Stellen Sie sicher, dass das Plugin nicht durch eines der folgenden Flags deaktiviert ist :
-
instrumentationEnabled
in derbuild.gradle
Datei Ihres Moduls (App-Ebene). -
firebasePerformanceInstrumentationEnabled
in Ihrergradle.properties
-Datei
-
Überprüfen Sie die Netzwerkbibliothek auf Inkompatibilität. Die Leistungsüberwachung erfasst automatisch Metriken für Netzwerkanforderungen, die die folgenden Netzwerkbibliotheken verwenden: OkHttp 3.xx, Javas URLConnection und Apache HttpClient.
Beachten Sie, dass Sie eine benutzerdefinierte Überwachung für Netzwerkanforderungen hinzufügen können.
Beachten Sie Folgendes:
Abhängig vom Verhalten Ihres Codes und der von Ihrem Code verwendeten Netzwerkbibliotheken meldet die Leistungsüberwachung möglicherweise nur abgeschlossene Netzwerkanforderungen. Dies bedeutet, dass offen gelassene HTTP/S-Verbindungen möglicherweise nicht gemeldet werden.
Die Leistungsüberwachung ist nicht mit DexGuard und Jack kompatibel.
- DexGuard deaktiviert die Überwachung von HTTP/S-Netzwerkanfragen.
- Jack ist veraltet und sollte im Allgemeinen nicht in Ihrer App verwendet werden.
Die Leistungsüberwachung meldet keine Netzwerkanfragen mit ungültigen
Content-Type
Headern. Netzwerkanfragen ohneContent-Type
Header werden jedoch weiterhin akzeptiert.
Erfahren Sie mehr darüber , wie Performance Monitoring Netzwerkanforderungsdaten unter URL-Mustern aggregiert .
Sie können auch benutzerdefinierte URL-Muster ausprobieren!
FAQ
Wir haben „Top Issues“ durch „Recent Alerts“ ersetzt, als Folge unserer kürzlichen Einführung von Alerts, die Sie automatisch benachrichtigen, wenn die von Ihnen festgelegten Schwellenwerte überschritten werden. Probleme sind jetzt veraltet und werden durch Warnungen ersetzt.
Die Apps-Auswahl oben auf der Leistungskarte filtert die Warnungseinträge unter „Letzte Warnungen“ . Es werden nur die drei aktuellsten Warnungen für die ausgewählte(n) App(s) angezeigt.
Weitere Informationen zu Warnungen finden Sie unter Einrichten von Warnungen für Leistungsprobleme .
Performance Monitoring unterstützt Warnungen für Metriken, die definierte Schwellenwerte überschreiten. Um Verwechslungen mit diesen konfigurierbaren Schwellenwerten für Leistungsmetriken zu vermeiden, haben wir die Möglichkeit zum Konfigurieren von Schwellenwerten für Probleme entfernt.
Wir haben die Seiten „Details“ und „Metriken“ durch eine neu gestaltete, zentralisierte Benutzeroberfläche (UI) ersetzt, um die Fehlerbehebung bei Problemen zu verbessern. Diese neue Benutzeroberfläche zur Fehlerbehebung bietet dieselben Kernfunktionen wie Details und Metriken. Weitere Informationen zur Fehlerbehebung finden Sie unter Weitere Daten für eine bestimmte Ablaufverfolgung anzeigen .
Die Leistungsüberwachung erfasst Leistungsdaten von den Benutzergeräten Ihrer App. Wenn Ihre Anwendung viele Benutzer hat oder wenn die App eine große Menge an Leistungsaktivitäten generiert, kann die Leistungsüberwachung die Datenerfassung auf eine Teilmenge von Geräten beschränken, um die Anzahl der verarbeiteten Ereignisse zu reduzieren. Diese Grenzwerte sind hoch genug, sodass die Metrikwerte auch bei weniger Ereignissen immer noch repräsentativ für die App-Erfahrung Ihres Benutzers sind.
Um die von uns erfasste Datenmenge zu verwalten, nutzt Performance Monitoring die folgenden Stichprobenoptionen:
Ratenbegrenzung auf dem Gerät : Um zu verhindern, dass ein Gerät plötzliche Trace-Bursts sendet, begrenzen wir die Anzahl der von einem Gerät gesendeten Code- und Netzwerkanforderungs-Traces auf 300 Ereignisse alle 10 Minuten. Dieser Ansatz schützt das Gerät vor Instrumentenschleifen, die große Mengen an Leistungsdaten senden können, und verhindert, dass ein einzelnes Gerät die Leistungsmessungen verzerrt.
Dynamisches Sampling : Die Leistungsüberwachung erfasst pro App und für alle App-Benutzer täglich ein Limit von etwa 100 Millionen Ereignissen für Code-Traces und 100 Millionen für Netzwerkanforderungs-Traces. Auf Geräten wird eine dynamische Abtastrate abgerufen (mithilfe von Firebase Remote Config), um zu bestimmen, ob ein zufälliges Gerät Ablaufverfolgungen erfassen und senden soll. Ein Gerät, das nicht zum Sampling ausgewählt ist, sendet keine Ereignisse. Die dynamische Abtastrate ist anwendungsspezifisch und passt sich an, um sicherzustellen, dass die Gesamtmenge der gesammelten Daten unter dem Grenzwert bleibt.
Benutzersitzungen senden zusätzliche, detaillierte Daten vom Gerät eines Benutzers, wodurch mehr Ressourcen zum Erfassen und Senden der Daten erforderlich sind. Um die Auswirkungen von Benutzersitzungen zu minimieren, kann die Leistungsüberwachung auch die Anzahl der Sitzungen einschränken.
Serverseitige Ratenbegrenzung : Um sicherzustellen, dass Apps das Stichprobenlimit nicht überschreiten, verwendet die Leistungsüberwachung möglicherweise serverseitige Stichproben, um einige von Geräten empfangene Ereignisse zu verwerfen. Obwohl diese Art der Einschränkung die Effektivität unserer Metriken nicht verändert, kann sie zu geringfügigen Musterverschiebungen führen, darunter die folgenden:
- Die Anzahl der Spuren kann von der Anzahl der Ausführungen eines Codeabschnitts abweichen.
- Im Code eng gekoppelte Spuren können jeweils eine unterschiedliche Anzahl von Stichproben aufweisen.
Wir haben die Registerkarte „Probleme“ durch die Einführung von Warnungen ersetzt, die Sie automatisch benachrichtigen, wenn die von Ihnen festgelegten Schwellenwerte überschritten werden. Sie müssen die Firebase-Konsole nicht mehr manuell überprüfen, um den Status eines Schwellenwerts zu ermitteln. Weitere Informationen zu Warnungen finden Sie unter Einrichten von Warnungen für Leistungsprobleme .
Wir haben den Abschnitt „Leistungsüberwachung“ der Firebase-Konsole neu gestaltet, sodass auf der Registerkarte „Dashboard “ Ihre wichtigsten Kennzahlen und alle Ihre Traces an einem Ort angezeigt werden. Im Rahmen der Neugestaltung haben wir die Seiten „Auf dem Gerät“ und „Netzwerk“ entfernt.
Die Traces-Tabelle am unteren Rand der Registerkarte „Dashboard “ enthält dieselben Informationen wie die Registerkarten „Auf Gerät“ und „Netzwerk “, jedoch mit einigen zusätzlichen Funktionen, einschließlich der Möglichkeit, Ihre Traces nach der prozentualen Änderung für eine bestimmte Metrik zu sortieren. Um alle Metriken und Daten für eine bestimmte Ablaufverfolgung anzuzeigen, klicken Sie in der Ablaufverfolgungstabelle auf den Ablaufverfolgungsnamen.
Sehen Sie sich Ihre Traces in den folgenden Unterregisterkarten der Traces-Tabelle an:
- Netzwerkanfrage-Traces (sowohl standardmäßig als auch benutzerdefiniert) – Unterregisterkarte „Netzwerkanfragen“.
- Benutzerdefinierte Code-Ablaufverfolgungen – Unterregisterkarte „Benutzerdefinierte Ablaufverfolgungen“.
- App-Start-, App-im-Vordergrund- und App-im-Hintergrund-Traces – Unterregisterkarte „Benutzerdefinierte Traces“ .
- Bildschirm-Rendering-Spuren – Unterregisterkarte „Bildschirm-Rendering“.
- Seitenladespuren – Unterregisterkarte „Seitenladevorgang“.
Einzelheiten zur Ablaufverfolgungstabelle und zum Anzeigen von Metriken und Daten finden Sie auf der Übersichtsseite der Konsole ( iOS+ | Android | Web ).
Langsame Rendering-Frames und eingefrorene Frames werden mit einer angenommenen Geräteaktualisierungsrate von 60 Hz berechnet. Wenn die Bildwiederholfrequenz des Geräts niedriger als 60 Hz ist, ist die Renderzeit für jedes Bild geringer, da weniger Bilder pro Sekunde gerendert werden. Langsamere Renderzeiten können dazu führen, dass mehr langsame oder eingefrorene Frames gemeldet werden, da mehr Frames langsamer gerendert werden oder einfrieren. Wenn die Bildwiederholfrequenz des Geräts jedoch höher als 60 Hz ist, ist die Renderzeit für jedes Bild schneller. Dies kann dazu führen, dass weniger langsame oder eingefrorene Frames gemeldet werden. Dies ist eine aktuelle Einschränkung im Performance Monitoring SDK.
Um zusätzlich zur App-Aktivität auch die Leistung von Fragmenten anzuzeigen, stellen Sie sicher, dass Ihre App Performance Monitoring Android SDK Version 20.1.0 oder höher verwendet. Weitere Informationen finden Sie unter Leistungsüberwachung zu Ihrer App hinzufügen .
Jede der Fragment- und Aktivitätsspuren basiert auf ihrem Klassennamen, der in Ihrer Anwendung definiert ist. Jede der Bildschirmspuren enthält das Präfix „st“ , gefolgt vom Namen der Klasse. Auf der Firebase-Konsole wird das Präfix entfernt. Weitere Informationen finden Sie unter Erfahren Sie mehr über Leistungsdaten zur Bildschirmwiedergabe (Apple- und Android-Apps) .
Die Leistungsüberwachung führt eine Ereignisstichprobe für alle auf einem Gerät erfassten Ereignisse durch. Mit diesem Ansatz können wir die minimal erforderlichen Ereignisse von Benutzergeräten erfassen, um Leistungsmetriken bereitzustellen.
Mit der Leistungsüberwachung können Sie Benachrichtigungen für die Kennzahlen einrichten, die Ihnen wichtig sind. Für generierte Bildschirm-Rendering-Spuren können Sie Warnungen einrichten , die Sie benachrichtigen, wenn der Prozentsatz langsamer und eingefrorener Frames einen von Ihnen festgelegten Schwellenwert überschreitet.
Performance Monitoring für Android nutzt Bytecode-Instrumentierung, um einige sofort einsatzbereite Funktionen wie die Überwachung von HTTP/S-Netzwerkanforderungen bereitzustellen. Als Teil der Kompilierung erfordert der Prozess eine Iteration durch alle Klassen Ihrer App (einschließlich Abhängigkeiten), um den Code zu instrumentieren, der für die Messung der Netzwerkanfrageleistung Ihrer Anwendung entscheidend ist.
Hier sind einige wichtige Faktoren, die zu einer Verlängerung der Bauzeit beitragen:
- Anzahl der Klassen oder Dateien
- Größe jeder dieser Klassen (Codezeilen)
- Ihre Maschinenkonfiguration
- Erster Build im Vergleich zu einem nachfolgenden Build (nachfolgende Builds sind normalerweise schneller als der erste Build)
Um Ihre Build-Zeit zu optimieren, sollten Sie über eine Modularisierung Ihres Codes nachdenken.
Ab Version 1.3.3 des Performance Monitoring-Plugins haben wir uns darauf konzentriert, erhebliche Verbesserungen bei der inkrementellen Build-Verarbeitung und dem Caching von Bibliothekseingaben vorzunehmen. Um die neuesten Verbesserungen der Build-Zeit zu erhalten, stellen Sie sicher, dass Sie die neueste Version des Plugins (v1.4.2) verwenden .
Beachten Sie, dass Sie das Performance Monitoring-Plugin für Ihre Debug-Builds lokal deaktivieren können, wenn Sie lange Build-Zeiten vermeiden möchten. Dieser Ansatz wird jedoch für Produktions-Builds nicht empfohlen, da er zu fehlenden Leistungsmessungen für die Netzwerkanforderungen in Ihrer App führen könnte.
Performance Monitoring für Android nutzt Bytecode-Instrumentierung, um einige sofort einsatzbereite Funktionen wie die Überwachung von HTTP/S-Netzwerkanforderungen bereitzustellen. Als Teil der Kompilierung erfordert der Prozess eine Iteration durch alle Klassen Ihrer App (einschließlich Abhängigkeiten), um den Code zu instrumentieren, der für die Messung der Netzwerkanfrageleistung Ihrer Anwendung entscheidend ist.
Wenn Sie nach der Integration mit dem Performance Monitoring-Plugin Build-Fehler wie JSR/RET are not supported with computeFrames option
oder ähnliche Fehlermeldungen erhalten, kann dies daran liegen, dass Sie auch von einer Bibliothek abhängig sind, die mit dem Performance Monitoring Gradle-Plugin nicht kompatibel ist.
Um dies zu umgehen, können Sie inkompatible Klassen/Bibliotheken von der Instrumentierung ausschließen, indem Sie die folgenden Schritte ausführen:
- Aktualisieren Sie auf die neueste Version des Performance Monitoring Gradle-Plugins (mindestens v1.4.0 ).
- Aktualisieren Sie die Version Ihres Android Gradle-Plugins auf Version 7.2.0 oder höher.
- Fügen Sie das folgende Flag zu Ihrer
build.gradle
Datei auf Modulebene (App-Ebene) hinzu, um die inkompatiblen Klassen/Bibliotheken von der Instrumentierung auszuschließen:android { // ... androidComponents { onVariants(selector().all(), { instrumentation.excludes.add("example.incompatible.library") }) } }
Weitere Informationen zurexclude
Eigenschaft derInstrumentation
API des Android Gradle-Plugins finden Sie unter Instrumentierung .
Bitte reichen Sie ein Github-Problem ein , wenn Sie aufgrund inkompatibler Bibliotheken auf Build-Fehler stoßen, damit diese ebenfalls von der Instrumentierung im Performance Monitoring-Plugin ausgeschlossen werden können.
Wenn Sie die BigQuery-Integration für Firebase Performance Monitoring aktiviert haben, werden Ihre Daten 12 bis 24 Stunden nach Tagesende (Pacific Time) nach BigQuery exportiert.
Beispielsweise werden die Daten für den 19. April am 20. April zwischen 12:00 und Mitternacht in BigQuery verfügbar sein (alle Daten und Zeiten beziehen sich auf Pacific Time).
Near real-time data processing and display
Firebase Performance Monitoring processes collected performance data as it comes in, which results in near real-time data display in the Firebase console. Processed data displays in the console within a few minutes of its collection, hence the term "near real-time".
To take advantage of near real-time data processing, make sure your app uses a real-time compatible SDK version .
To take advantage of near real-time data processing, you only need to make sure that your app uses a Performance Monitoring SDK version that's compatible with real-time data processing.
These are the real-time compatible SDK versions:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
These are the SDK versions compatible with real-time data processing:
- iOS — v7.3.0 or later
- tvOS — v8.9.0 or later
- Android — v19.0.10 or later (or Firebase Android BoM v26.1.0 or later)
- Web — v7.14.0 or later
Note that we always recommend using the latest version of SDK, but any version listed above will enable Performance Monitoring to process your data in near real time.
If your app doesn't use a real-time compatible SDK version, you will still see all your app's performance data in the Firebase console. However, the display of performance data will be delayed by roughly 36 hours from the time of its collection.
Yes! Regardless of which SDK version an app instance uses, you'll see performance data from all your users.
However, if you're looking at recent data (less than roughly 36 hours old), then the displayed data is from users of app instances using a real-time compatible SDK version. The non-recent data, though, includes performance data from all versions of your app.
Contacting Firebase Support
If you reach out to Firebase Support , always include your Firebase App ID. Find your Firebase App ID in the Your apps card of your Project settings .