Megosztás a következőn keresztül:


Profilalapú optimalizálás futtatása univerzális Windows-platformalkalmazásokon

Ez a témakör részletes útmutatót nyújt a profilalapú optimalizálás (PGO) univerzális Windows-platform (UWP) alkalmazásokra való alkalmazásához. Az asztali alkalmazások nem minden lépése érhető el az UWP-alkalmazások számára, ezért az a célunk, hogy ismertetjük a PGO beépítéséhez szükséges folyamatot, hogy megkönnyítsük és könnyebben elérhetővé tegyük az UWP-fejlesztők számára az optimalizálást.

Az alábbiakban bemutatjuk, hogy a Visual Studio 2015 Update 3 használatával a PGO-t az alapértelmezett DirectX 11-alkalmazássablonra (UWP) kell alkalmazni.

Az útmutató képernyőképei a következő új projekten alapulnak: Képernyőkép az Új projekt párbeszédpanelről, amelyen a Telepített > sablonok > Visual C plusz ki van jelölve, valamint a Direct 11 Alkalmazás lehetőség ki van jelölve.

A PGO alkalmazása a DirectX 11 alkalmazássablonra:

  1. Állítsa be a megoldáskonfigurációt a Kiadás konfigurációra, vagy válasszon egy olyan megoldáskonfigurációt, ahol kiadásra szánt optimalizált kódot készít. Bár elméletileg futtathat PGO-t hibakeresési buildeken, az egyébként nem optimális build optimalizálása nem lenne hatékony a PGO használatával.

App1 ablak

  1. Ellenőrizze a projekt tulajdonságainál (Tulajdonságok>C/C++>Optimalizálás), hogy a /GL jelölő van-e beállítva a Teljes Programoptimalizálás érdekében (amit a konfigurációja már megadhatott).

Teljes Programoptimalizáció

  1. Lépjen a linker tulajdonságaiba (Tulajdonságok>Linker>Optimalizálás), és állítsa be Időzítés szerinti kódlétrehozástProfilalapú optimalizálás – Eszköz (LTCG:PGInstrument).

Összekapcsolási idő kódgenerálás

  1. Válassza Megoldás létrehozásalehetőséget, majd válassza a Megoldás üzembe helyezéselehetőséget.

Képernyőkép a Build legördülő listáról, piros nyilakkal, amelyek a Megoldás összeállítása és a Megoldás üzembe helyezése beállításra mutatnak.

A build kimeneti helyének megtekintésével és a .pgd fájl létrehozásának ellenőrzésével ellenőrizheti, hogy minden megfelelően működött-e. Ebben a példában ez azt jelentette, hogy a build kimenete mellett a következő fájl lett létrehozva:

C:\Users\<USER>\Documents\Visual Studio 2015\Projects\App1\Release\App1\App1.pgd

Alapértelmezés szerint a .pgd fájl neve megegyezik a végrehajtható fájl nevével. A létrehozott .pgd fájl nevét is módosíthatja a profilvezérelt adatbázis linker beállításának módosításával.

  1. Lépjen a Visual Studio VC bináris fájljainak könyvtárára (alapértelmezés szerint ez C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin). X86-végrehajtható fájlok esetén másolja pgort140.dll; x64-es végrehajtható fájlok esetén másolja az x64-es verziót a amd64\pgort140.dll. Illessze be a pgort140.dll megfelelő verzióját az üzembe helyezett csomag gyökerébe. Ebben a mintában az elérési út a következő:

C:\Users\<USER>\Documents\Visual Studio 2015\Projects\App1\Release\App1\AppX\

Erre a lépésre azért van szükség, mert az UWP-alkalmazások csak a csomagjukban található kódtárakat tölthetik be.

Képernyőkép egy Fájlkezelő ablakról, amelyen az AppX mappa tartalma látható.

  1. Futtassa az alkalmazást a Start menüből vagy a Visual Studio Hibakeresés menüjéből a Hibakeresés nélkül indítás lehetőséggel.

Képernyőkép a Hibakeresés legördülő listáról, amin a Futtatás hibakeresés nélkül opció van kiemelve.

  1. A most futó build rendszerezett, és PGO-adatokat generál. Ezen a ponton futtatnia kell az alkalmazást az optimalizálni kívánt leggyakoribb forgatókönyvek némelyikén. Miután a program végigfutott a kívánt forgatókönyveken, keresse meg a pgosweep.exe eszközt ugyanabban a mappában, ahol megtalálta a pgort140.dllmegfelelő verzióját. Alternatív megoldásként a Visual Studio (x86/x64) Native Tools parancssora már rendelkezik a megfelelő verzióval az elérési útjában. A PGO-adatok gyűjtéséhez futtassa a következő parancsot, amíg az alkalmazás még fut, és létrehoz egy .pgc fájlt, amely a profilkészítési adatokat fogja tartalmazni:

pgosweep.exe <executable name> <output file>

A pgosweep.exe súgót (pgosweep.exe /help) is megtekintheti, hogy más választható argumentumokat találjon a PGO-adatok gyűjtésének szabályozásához.

Érdemes a .pgc fájlokat a .pgd buildelési helyére kihozni, és a fájlokat <PGDName>!<RunIdentifier>.pgcis elnevezni. Ebben a példában ez a következőt jelentette:

pgosweep.exe App1.exe "C:\Users\<USER>\Documents\Visual Studio 2015\Projects\App1\Release\App1\App1!1.pgc"

További gyűjtést is lehetne App1!CoreScenario.pgc, App1!UseCase5.pgcstb. Ha a .pgc-fájlok neve így van elnevezve, és a build kimeneti helyén a .pgd mellett van, a rendszer automatikusan egyesíti őket a 9. lépésben történő csatoláskor.

  1. NEM KÖTELEZŐ: Alapértelmezés szerint a 7. lépésben megadott és a .pgd mellett elhelyezett .pgc fájlok össze lesznek vonva, és egyenlő súlyozást kapnak a csatolás során, azonban nagyobb ellenőrzést is gyakorolhat a különböző futtatások súlyozása felett. Ehhez az pgomgr.exe eszközt fogja használni, amely ugyanabban a mappában található, ahol először találta meg a pgort140.dllmásolatát. Például, ha a CoreScenario futtatást 3-szoros prioritással szeretném összefűzni a többi futtatással, a következő parancsot használhatom:
pgomgr.exe -merge:3 "C:\Users\<USER>\Documents\Visual Studio 2015\Projects\App1\Release\App1\App1!CoreScenario.pgc" "C:\Users\<USER>\Documents\Visual Studio 2015\Projects\App1\Release\App1\App1.pgd"
  1. Miután létrehozott egy vagy több .pgc fájlt, és elhelyezte őket a .pgd mellett, vagy manuálisan egyesítette őket (8. lépés), a linker használatával létrehozhatjuk a végső optimalizált buildet. Térjen vissza a linker tulajdonságaihoz (Tulajdonságok>Linker>Optimalizálás), és állítsa be a Link idő kód generálást () a Profilvezérelt optimalizálás – optimalizálás (LTCG:PGOptimize) beállításra (), és ellenőrizze, hogy a profilvezérelt adatbázis () a használni kívánt .pgd-re mutat-e (ha ezt nem módosította, mindennek rendben kell lennie).

Képernyőkép az App 1 tulajdonságlapok párbeszédpanelről, amelyen a Konfiguráció tulajdonságai > Linker > Optimalizálás van kiválasztva a Linkelési idő kód generálása opcióval és a Profilvezérelt optimalizálás – Optimalizálás L T C G: P G optimalizálási lehetőségek kiemelve.

  1. Most, hogy a projekt elkészült, a linker meghívja pgomgr.exe, hogy egyesítse a <PGDName>!*.pgc fájlokat az alapértelmezett 1 súlyú .pgd fájlokkal, és az eredményül kapott alkalmazás a profilkészítési adatok alapján lesz optimalizálva.

Lásd még