Profilgestützte Optimierung in Visual Studio konfigurieren

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.

Das Eigenschaftenmenü des Visual Studio-Projektmappen-Explorers für die aktuelle
Projekt arbeiten.

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.

Das Dialogfeld „Projekteigenschaften“ mit angezeigten allgemeinen Eigenschaften und PGO-Einstellungen
hervorgehoben

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....

Oben im Dialogfeld „Property-Seiten“ wird die aktive Lösung angezeigt.
die Drop-down-Menüs "Konfiguration" und "Plattform" sowie der Konfigurationsmanager
Schaltfläche

Abbildung 3:Dialogfeld des Konfigurationsmanagers

Wählen Sie im Dialogfeld des Konfigurationsmanagers die Option Aktive Lösung Konfiguration und wählen Sie <Neu...> aus.

Das Dialogfeld „Konfigurationsmanager“ mit der aktiven Lösungskonfiguration
Drop-down-Menü und die Option „Neu“
hervorgehoben.

Abbildung 4:Neue Build-Konfiguration erstellen.

...und erstellen Sie eine neue PGO-instrumentierte Konfiguration.

Dialogfeld „Neue Lösungskonfiguration“ zum Erstellen eines neuen PGO-instrumentierten Builds
Konfiguration basierend auf dem vorhandenen Release-Build
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.

Das Dialogfeld „Project Properties“ (Projekteigenschaften) mit den allgemeinen Einstellungen und dem PGO
und der Modus „Interaktive Optimierung für das Profil“ ist auf
Instrumentiert.

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.

Das Dialogfeld „Neue Lösungskonfiguration“, das eine Build-Konfiguration basierend auf
Release-Build, aber diesmal mit „PGO-Optimized“ als neuer Build
Konfigurationsname.

Abbildung 7:Neue PGO-optimierte Build-Konfiguration erstellen.

Einstellung Profilgestützter Optimierungsmodus in der Projekteigenschaft festlegen Optimiert festlegen.

Das Dialogfeld „Project Properties“ (Projekteigenschaften) mit den allgemeinen Einstellungen und dem PGO
und der Modus „Interaktive Optimierung für das Profil“ ist auf
Optimiert

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).