Unterstützung für profilgestützte Optimierung in AGDE eingeführt Version 22.2.71.
PGO-Einstellungen finden
Öffnen Sie die Projekteinstellungen im Projektmappen-Explorer.
Abbildung 1:Das Fenster des Projektmappen-Explorers von Visual Studio
Achten Sie darauf, dass Ihre Plattform auf eine Android-Konfiguration eingestellt ist (z. B. Android-arm64-v8a).
Wählen Sie im linken Steuerfeld Konfigurationseigenschaften > Allgemein: Suchen Sie nach der Property-Gruppe PGO.
Abbildung 2:Dialogfeld "Projekteigenschaften"
PGO-instrumentierte Builds im Projekt aktivieren
Fügen Sie Ihrem Projekt eine neue Konfiguration namens Instrumented hinzu. Diese basiert auf die Sie während der Entwicklung zu Testzwecken verwenden. Ihren traditionell optimierten Build (zusätzliche Fehlerbehebung aktiviert sind, solange Sie die Einstellungen für die Compiler-Optimierung beibehalten.
Klicken Sie im Dialogfeld „Property-Seite“ auf Konfigurationsmanager....
Abbildung 3:Dialogfeld des Konfigurationsmanagers
Wählen Sie im Dialogfeld des Konfigurationsmanagers die Option Aktive Lösung Konfiguration und wählen Sie <Neu...> aus.
Abbildung 4:Neue Build-Konfiguration erstellen.
...und erstellen Sie eine neue PGO-instrumentierte Konfiguration.
Abbildung 5:Dialogfeld „Neue Lösungskonfiguration“
Um Gebäude im PGO-instrumentierten Modus zu aktivieren, damit Sie ein Profil erstellen können für dein Spiel den Eintrag Instrumentiert aus der Liste der Optionen für die Profilgestützte Optimierungsmodus eingestellt haben.
Abbildung 6:Dialogfeld „Project Properties“ mit Hervorhebung der PGO-Einstellungen.
Geben Sie für die Einstellung Profile Guided Optimization Profiles den Pfad zum
Ordner, in den Sie die unbearbeitete Datei mit den Profildaten der Ausgabe auf Ihr Android-Gerät schreiben möchten.
Dieser Wert sollte in der Regel /data/data/<package
name>/cache/
lauten, wobei <package name>
der vollständige Paketname Ihres
APK – z. B. com.google.sample.tunnel.
Detailliertere Informationen dazu, wie dies funktioniert, finden Sie im Clang Dokumentation.
PGO-instrumentierte Profildaten auf Ihrem Gerät schreiben
PGO-Daten werden in der Regel vom PGO-Instrumentierungssystem auf das Gerät geschrieben, wenn ein Prozess beendet wird. Unter Android werden Apps nicht beendet, sondern immer beendet. Dieses bedeutet die Standardeinstellung „Auf Laufwerk schreiben“, wird nie ausgelöst, sodass Ihre um PGO-Daten manuell zu schreiben.
Ihre App sollten Sie explizit __llvm_profile_write_file
aufrufen, um den
Profildaten. Dieses Symbol ist nur verfügbar, wenn ein PGO-instrumentiert wird,
erstellen. Um dies zu vereinfachen, empfehlen wir die Verwendung des folgenden Musters beim
Forward deklariert __llvm_profile_write_file
.
#ifdef PGO_INSTRUMENT
extern "C" int __llvm_profile_write_file(void);
#else
extern "C" int __llvm_profile_write_file(void) { return 0; }
#endif
Durch das Aufrufen dieser Funktion werden die Profildaten in den von Ihnen angegebenen Ordner geschrieben. zuvor.
Profilausführung ausführen
Um das Profil zu generieren, führen Sie Ihr APK, das mit PGO-Instrumentierung erstellt wurde, auf der
Zielgerät Nachdem Sie den Code zu Ihrer Zufriedenheit ausgeführt haben und
den Aufruf der Funktion __llvm_profile_write_file
ausgelöst hat, wird deine App
die Profildaten in den Speicher schreiben.
Kopieren Sie die Profile an diesem Punkt zur Verwendung durch den Compiler vom Gerät.
Profildaten für die Verwendung durch den Compiler vorbereiten
Bei isolierter Verwendung wird das im Lieferumfang enthaltene Befehlszeilentool llvm-profdata
verwendet.
von Clang/LLVM im Android NDK wird verwendet, um Profildatendateien für die Verwendung vorzubereiten.
vom Compiler bei der profilgesteuerten Optimierung eines Builds erstellt.
AGDE führt diesen Schritt automatisch für Sie aus, indem er beliebige Profile Datendateien, die Sie Ihrem Projekt hinzugefügt haben, und diese verwenden, wenn das Die Einstellung Profilgestützter Optimierungsmodus in den Projekteigenschaftenseiten ist ist auf Optimiert festgelegt.
Projekt mit aktivierter profilgestützter Optimierung erstellen
Nachdem Sie Ihre Profile erfasst und Ihrem Projekt hinzugefügt haben, kann der Compiler diese Daten zur Feinabstimmung der Optimierung Ihres Builds verwenden.
Erstellen Sie eine neue Projektkonfiguration für Ihren PGO-optimierten Build, sodass Sie nur wenn er benötigt wird.
Abbildung 7:Neue PGO-optimierte Build-Konfiguration erstellen.
Einstellung Profilgestützter Optimierungsmodus in der Projekteigenschaft festlegen Optimiert festlegen.
Abbildung 8:PGO-Optimierungsmodus auf „Optimized“ (optimiert) festlegen
Kopieren Sie die Dateien von dem Gerät und fügen Sie sie Ihrem Projekt in der Lösung hinzu. Explorer. Diese Profildatendateien werden vom Compiler das nächste Mal abgerufen. Sie erstellen Ihre PGO-Optimized-Konfiguration und passen die Art und Weise an, wie der Compiler um Ihren Code zu optimieren.
Sie können die Dateien mit den Profildaten vom Gerät über ADB in Ihr Projekt kopieren. oder den Android Device Explorer verwenden.
Profilgestützte Optimierung außerhalb von AGDE verwenden
Wenn Sie ein Build-System verwenden, das nicht von AGDE unterstützt wird, müssen Sie möglicherweise
und können Ihren Build direkt bearbeiten. Clangs
Dokumentation
behandelt die erforderlichen Schalter: -fprofile-generate
und
-fprofile-use
.
Wenn Sie eine Middleware-Engine für Ihr Spiel verwenden, sehen Sie in der Dokumentation nach für Ihre Suchmaschine, um zu erfahren, wie PGO aktiviert wird (falls es unterstützt wird).