Konfigurowanie optymalizacji z pomocą profilu w Visual Studio

Wprowadzono w AGDE pomoc dotyczącą optymalizacji wspomaganej przez profil wersji 22.2.71.

Znajdowanie ustawień programu PGO

Otwórz ustawienia projektu w Eksploratorze rozwiązań.

Menu właściwości eksploratora rozwiązań Visual Studio dla bieżącego
w projektach AI.

Rysunek 1. Okno Eksploratora rozwiązań Visual Studio

Upewnij się, że platforma ma wybraną konfigurację Androida (na przykład Android-arm64-v8a).

W panelu po lewej stronie wybierz Właściwości konfiguracji > Postanowienia ogólne. Szukaj grupę właściwości o nazwie PGO.

Okno właściwości projektu z wyświetlonymi właściwościami ogólnymi i ustawieniami PGO
wyróżniona

Rysunek 2. Okno Właściwości projektu

Włącz w projekcie kompilacje instrumentowane przez PGO

Dodaj do projektu nową konfigurację o nazwie Instrumented. Na podstawie konfiguracji, której używasz w trakcie programowania do testowania. Powinno to być do tradycyjnej zoptymalizowanej kompilacji (nadal możesz mieć włączonych, o ile zachowasz ustawienia optymalizacji kompilatora).

W oknie usługi kliknij Configuration Manager... (Menedżer konfiguracji...).

U góry okna właściwości, na którym widać aktywne rozwiązanie
menu Konfiguracja i Platforma, a także Menedżer konfiguracji,
przycisk

Rysunek 3. Okno menedżera konfiguracji

W oknie menedżera konfiguracji wybierz Aktywne rozwiązanie konfiguracji i wybierz <Nowy...>.

Okno menedżera konfiguracji z konfiguracją aktywnego rozwiązania
menu i opcji Nowy
wyróżniona.

Rysunek 4. Tworzenie nowej konfiguracji kompilacji.

...i utwórz nową konfigurację instrumentowaną przez PGO.

Okno konfiguracji nowego rozwiązania tworzące nową kompilację z instrumentacją PGO
konfiguracja na podstawie istniejącej kompilacji wersji
konfiguracja

Rysunek 5. Okno konfiguracji nowego rozwiązania

Aby włączyć tworzenie w trybie instrumentowanym PGO i wygenerować profil dla swojej gry, wybierz z listy opcji instrumentowana Tryb optymalizacji z instrukcjami.

Okno Właściwości projektu otwarte w Ustawieniach ogólnych z narzędziem PGO
wyświetlanych ustawieniach, a tryb „Pomoc z instrukcjami optymalizacji profilu” jest ustawiony na
Zintegrowane.

Rysunek 6. Okno Właściwości projektu z wyróżnionymi ustawieniami PGO.

W ustawieniu Profile wskazówek optymalizacji profilu wpisz ścieżkę do aby zapisać na urządzeniu z Androidem nieprzetworzony plik wyjściowy profilu. Zwykle ta wartość powinna wyglądać mniej więcej tak: /data/data/<package name>/cache/, gdzie <package name> to pełna nazwa pakietu APK – na przykład com.google.sample.tunnel.

Dokładniejsze informacje o tym, jak to działa, znajdziesz w Clang dokumentacji.

Zapisywanie danych profilowych powiązanych z PGO na urządzeniu

Dane dotyczące PGO są zwykle zapisywane na urządzeniu przez system instrumentacji PGO, gdy po wyjściu z procesu. Na Androidzie aplikacje nie zamykają się – zawsze są zamykane. Ten oznacza domyślną wartość „zapisz na dysku” funkcja nigdy się nie uruchamia, co wymaga do ręcznego zapisywania danych PGO.

Należy jawnie wywołać funkcję __llvm_profile_write_file i umieścić w niej zapis dane profilu. Ten symbol jest dostępny tylko w przypadku tworzenia kampanii inspirowanych PGO. tworzyć. Aby ułatwić sobie zadanie, zalecamy korzystanie z poniższego wzorca podczas: z deklaracjami __llvm_profile_write_file do przodu.

#ifdef PGO_INSTRUMENT
extern "C" int __llvm_profile_write_file(void);
#else
extern "C" int __llvm_profile_write_file(void) { return 0; }
#endif

Wywołanie tej funkcji powoduje zapisanie danych profilu w podanym folderze wcześniej.

Przeprowadzam uruchomienie profilu

Aby wygenerować profil, uruchom plik APK stworzony przy użyciu narzędzi PGO. na urządzeniu docelowym. Po wykonaniu kodu dla wygody użytkowników i uprzednim wywoła funkcję __llvm_profile_write_file, aplikacja zapisać dane profilu w pamięci masowej.

Na tym etapie skopiuj profile z powrotem z urządzenia, aby je wykorzystać przez kompilatora.

Przygotowywanie danych profilu do wykorzystania przez kompilatora

W izolacji używane jest narzędzie wiersza poleceń llvm-profdata, które jest wysyłane jako część języka Clang/LLVM w pakiecie Android NDK na Androida służy do przygotowywania plików danych profilu do użycia. przez kompilatora podczas optymalizacji kompilacji opartej na profilu.

AGDE wykona ten krok automatycznie, łącząc wszystkie profile dodanych do projektu i zużywających je, gdy Ustawienie Tryb optymalizacji z instrukcjami profilowymi na stronach właściwości projektu to wybrać ustawienie Zoptymalizowane.

Tworzę projekt z włączoną optymalizacją wspomaganą przez profil

Po zarejestrowaniu profili i dodaniu ich do projektu może użyć tych danych, aby precyzyjniej zoptymalizować kompilację.

Utwórz nową konfigurację projektu dla kompilacji zoptymalizowanej pod kątem PGO, tak aby tylko w odpowiednim trybie.

Okno konfiguracji nowego rozwiązania tworzące konfigurację kompilacji na podstawie
ale tym razem z optymalizacją PGO.
nazwę konfiguracji.

Rysunek 7. Tworzenie nowej konfiguracji kompilacji zoptymalizowanej pod kątem PGO.

Ustaw w usłudze projektu ustawienie Tryb optymalizacji z instrukcjami profilowymi. kliknij Zoptymalizowane.

Okno Właściwości projektu otwarte w Ustawieniach ogólnych z narzędziem PGO
wyświetlanych ustawieniach, a tryb „Pomoc z instrukcjami optymalizacji profilu” jest ustawiony na
Zoptymalizowany

Rysunek 8. Ustawianie trybu optymalizacji PGO na „Zoptymalizowany”.

Skopiuj pliki z urządzenia i dodaj je do swojego projektu w rozmieszczeniu Eksplorator. Te pliki danych profilu zostaną odczytane przez kompilator należy utworzyć konfigurację zoptymalizowaną pod kątem PGO, a następnie dostosować sposób działania optymalizuje kod.

Pliki danych profilu można skopiować z urządzenia do projektu przy użyciu ADB. lub w Eksploratorze urządzeń z Androidem.

Korzystanie z optymalizacji z instrukcjami dotyczącymi profilu poza AGDE

Jeśli używasz systemu kompilacji, który nie jest obsługiwany przez AGDE, bezpośrednio edytować kompilację. Clang' dokumentacja obejmuje niezbędne przełączniki – -fprofile-generate oraz -fprofile-use

Jeśli w swojej grze używasz silnika oprogramowania pośredniczącego, zapoznaj się z dokumentacją w wyszukiwarce, aby sprawdzić, jak włączyć funkcję PGO (jeśli jest obsługiwana).