Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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:
A PGO alkalmazása a DirectX 11 alkalmazássablonra:
- Á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.
- 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).
- 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).
- Válassza Megoldás létrehozásalehetőséget, majd válassza a Megoldás üzembe helyezéselehetőséget.
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.
- 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ásoljapgort140.dll
; x64-es végrehajtható fájlok esetén másolja az x64-es verziót aamd64\pgort140.dll
. Illessze be apgort140.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.
- 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.
- 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.dll
megfelelő 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>.pgc
is 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.pgc
stb. 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.
- 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.dll
másolatát. Például, ha aCoreScenario
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"
- 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).
- 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.