Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Nástroj pro optimalizaci spravovaného profilu (Mpgo.exe) je nástroj příkazového řádku, který používá běžné scénáře koncových uživatelů k optimalizaci sestavení nativních imagí vytvořených generátorem nativních imagí (Ngen.exe). Tento nástroj umožňuje spouštět trénovací scénáře, které generují data profilu. Generátor nativních imagí (Ngen.exe) tato data používá k optimalizaci sestavení vygenerovaných aplikací nativní bitové kopie. Scénář trénování je zkušební spuštění očekávaného použití vaší aplikace. Mpgo.exe je k dispozici v sadě Visual Studio Ultimate 2012 a novějších verzích. Od sady Visual Studio 2013 můžete také použít Mpgo.exe k optimalizaci aplikací pro Windows 8.x Store.
Optimalizace s asistencí profilu zlepšuje dobu spuštění aplikace, využití paměti (velikost pracovní sady) a propustnost shromažďováním dat z trénovacích scénářů a jejich použitím k optimalizaci rozložení nativních imagí.
Pokud narazíte na problémy s výkonem při spuštění a velikost pracovní sady pro sestavení IL (Intermediate Language), doporučujeme nejprve použít Ngen.exe eliminovat náklady na kompilaci za běhu (JIT) a usnadnit sdílení kódu. Pokud potřebujete další vylepšení, můžete k další optimalizaci aplikace použít Mpgo.exe. Data o výkonu z neoptimalizovaného sestavení nativních imagí můžete použít jako směrný plán k vyhodnocení zvýšení výkonu. Použití Mpgo.exe může mít za následek rychlejší časy studeného spuštění a menší velikost pracovní sady. Mpgo.exe přidá informace do sestavení IL, která Ngen.exe používá k vytvoření optimalizovaných sestavení nativních imagí. Další informace naleznete v části Zlepšení výkonu spuštění pro desktopové aplikace v blogu .NET.
Tento nástroj se automaticky nainstaluje se sadou Visual Studio. Ke spuštění nástroje použijte Developer Command Prompt nebo Developer PowerShell s přihlašovacími údaji správce.
Na příkazovém řádku zadejte následující příkaz:
Desktopové aplikace:
mpgo -Scenario <command> [-Import <directory>] -AssemblyList <assembly1> <assembly2> ... -OutDir <directory> [options]
Pro aplikace pro Windows 8.x Store:
mpgo -Scenario <packageName> -AppID <appId> -Timeout <seconds>
Parametry
Všechny argumenty Mpgo.exe nerozlišují malá a velká písmena. Příkazy mají předponu pomlčku.
Poznámka:
Můžete použít buď nebo -Scenario-Import jako požadovaný příkaz, ale ne obojí. Pokud tuto možnost zadáte -Reset , nepoužije se žádný z požadovaných parametrů.
| Povinný parametr | Description |
|---|---|
-Scenario
<
příkaz>— nebo — -Scenario
<
packageName>-or- -Import
<
adresář> |
U desktopových aplikací použijte -Scenario příkaz ke spuštění aplikace, kterou chcete optimalizovat, včetně všech argumentů příkazového řádku. Použijte tři sady dvojitých uvozovek kolem příkazu , pokud určuje cestu, která obsahuje mezery; například: mpgo.exe -scenario """C:\My App\myapp.exe""" -assemblylist """C:\My App\myapp.exe""" -outdir "C:\optimized files". Nepoužívejte dvojité uvozovky; nebudou fungovat správně, pokud příkaz obsahuje mezery.-or- U aplikací pro Windows 8.x Store použijte -Scenario k určení balíčku, pro který chcete vygenerovat informace o profilu. Pokud místo úplného názvu balíčku zadáte zobrazovaný název balíčku nebo název řady balíčků, Mpgo.exe vybere balíček, který odpovídá zadanému názvu, pokud existuje pouze jedna shoda. Pokud se zadaný název shoduje s více balíčky, Mpgo.exe vás vyzve k výběru balíčku.— nebo — Slouží -Import k určení, že data optimalizace z dříve optimalizovaných sestavení by se měla použít k optimalizaci sestavení v -AssemblyList.
adresář určuje adresář, který obsahuje dříve optimalizované soubory. Sestavení zadaná v -AssemblyList nebo -AssemblyListFile jsou novými verzemi sestavení, která mají být optimalizována pomocí dat z importovaných souborů. Použití optimalizačních dat ze starší verze sestavení umožňuje optimalizovat novější verze sestavení bez opětovného spuštění scénáře. Pokud však importovaná a cílová sestavení obsahují výrazně odlišný kód, data optimalizace budou neefektivní. Názvy sestavení zadané v -AssemblyList adresáři určeném adresářem nebo -AssemblyListFile musí být přítomny v -Import. Pokud určuje cestu obsahující mezery, použijte kolem adresáře tři sady dvojitých uvozovek.Je nutné zadat buď -Scenario nebo -Import, ale ne oba parametry. |
-OutDir
<
adresář> |
Adresář, do kterého se mají umístit optimalizovaná sestavení. Pokud sestavení již ve složce výstupního adresáře existuje, vytvoří se nová kopie a k názvu se připojí číslo indexu; Například: assemblyname-1.exe. Pokud určuje cestu obsahující mezery, použijte kolem adresáře dvojité uvozovky. |
-AssemblyList
<
assembly1 assembly2 ...>— nebo — -AssemblyListFile
<
soubor> |
Seznam sestavení (včetně souborů .exe a .dll) oddělených mezerami, o které chcete shromažďovat informace o profilu. Můžete určit C:\Dir\*.dll nebo *.dll vybrat všechna sestavení v určeném nebo aktuálním pracovním adresáři. Další informace najdete v části Poznámky.— nebo — Textový soubor, který obsahuje seznam sestavení, o které chcete shromažďovat informace o profilu, je uveden jeden sestavení na řádek. Pokud název sestavení začíná pomlčkou (-), použijte seznam souborů sestavení nebo přejmenujte sestavení. |
-AppID
<
appId> |
ID aplikace v zadaném balíčku. Pokud použijete zástupný znak (*), Mpgo.exe se pokusí vytvořit výčet identifikátorů AppID v balíčku a vrátí se do <package_family_name>! Pokud se aplikace nezdaří. Pokud zadáte řetězec, který je předponou vykřičníku (!), Mpgo.exe zřetězení názvu rodiny balíčku s zadaným argumentem. |
-Timeout
<
sekundy> |
Doba, po kterou se aplikace pro Windows 8.x Store spustí, než se aplikace ukončí. |
| Volitelný parametr | Description |
|---|---|
-64bit |
Nástroje sestavení pro 64bitové systémy. Tento parametr je nutné zadat pro 64bitová sestavení, i když se sestavení deklaruje jako 64 bitů. |
-ExeConfig
<
jméno souboru> |
Určuje konfigurační soubor, který váš scénář používá k poskytnutí informací o verzi a zavaděčí. |
-f |
Vynutí zahrnutí dat profilu do binárního sestavení, i když je podepsáno. Pokud je sestavení podepsáno, musí být znovu podepsáno; jinak se sestavení nepodaří načíst a spustit. |
-Reset |
Obnoví prostředí, aby se ujistilo, že přerušená relace profilace nemá vliv na sestavení a pak se ukončí. Prostředí se ve výchozím nastavení resetuje před a po relaci profilace. |
-Timeout
<
doba v sekundách> |
Určuje dobu profilace v sekundách. Pro aplikace s grafickým uživatelským rozhraním použijte hodnotu, která je o něco větší než pozorovaná doba spouštění. Na konci časového limitu se data profilu zaznamenávají, i když aplikace stále běží. Pokud tuto možnost nenastavíte, profilace bude pokračovat až do vypnutí aplikace, kdy se budou data zaznamenávat. |
-LeaveNativeImages |
Určuje, že instrumentované nativní bitové kopie by se neměly po spuštění scénáře odebrat. Tato možnost se primárně používá při získávání aplikace, kterou jste zadali pro spuštěný scénář. Zabrání opětovnému použití nativních imagí pro následná spuštění Mpgo.exe. Po dokončení spuštění aplikace může být v mezipaměti osamocené nativní bitové kopie, pokud tuto možnost zadáte. V tomto případě spusťte Mpgo.exe se stejným scénářem a seznamem sestavení a pomocí parametru -RemoveNativeImages odeberte tyto nativní bitové kopie. |
-RemoveNativeImages |
Vyčistí spuštění, ve kterém -LeaveNativeImages bylo zadáno. Pokud zadáte -RemoveNativeImages, Mpgo.exe ignoruje všechny argumenty s výjimkou -64bit a -AssemblyLista ukončí se po odebrání všech instrumentovaných nativních imagí. |
Poznámky
Na příkazovém řádku můžete použít obojí -AssemblyList i -AssemblyListFile několikrát.
Pokud při zadávání sestavení nezadáte úplné názvy cest, Mpgo.exe hledá v aktuálním adresáři. Pokud zadáte nesprávnou cestu, Mpgo.exe zobrazí chybovou zprávu, ale bude nadále generovat data pro jiná sestavení. Pokud zadáte sestavení, které není načteno během trénovacího scénáře, nebudou pro toto sestavení generována žádná trénovací data.
Pokud je sestavení v seznamu v globální mezipaměti sestavení, nebude aktualizováno tak, aby obsahovalo informace o profilu. Odeberte ji z globální mezipaměti sestavení a shromážděte informace o profilu.
Použití Ngen.exe a Mpgo.exe se doporučuje jenom pro velké spravované aplikace, protože výhoda předkompilovaných nativních imagí se obvykle zobrazuje pouze v případě, že eliminuje významnou kompilaci JIT za běhu. Spuštění Mpgo.exe v aplikacích ve stylu Hello World, které nejsou náročné na pracovní sadu, nebudou poskytovat žádné výhody a Mpgo.exe nemusí ani selhat shromažďování dat profilu.
Poznámka:
Ngen.exe a Mpgo.exe se nedoporučuje pro aplikace ASP.NET a služby WCF (Windows Communication Foundation).
Použití Mpgo.exe
Použijte počítač s nainstalovanou aplikací Visual Studio Ultimate 2012 a vaší aplikací.
Spusťte Mpgo.exe jako správce s potřebnými parametry. Ukázkové příkazy najdete v další části.
Sestavení optimalizovaného zprostředkujícího jazyka (IL) jsou vytvořena ve složce určené parametrem
-OutDir(v příkladech je toC:\Optimizedsložka).Nahraďte sestavení IL použitá pro Ngen.exe novými sestaveními IL, která obsahují informace o profilu z adresáře určeného
-OutDirnástrojem .Instalace aplikace (pomocí imagí poskytovaných Mpgo.exe) nainstaluje optimalizované nativní bitové kopie.
Navrhovaný pracovní postup
Vytvořte sadu optimalizovaných sestavení IL pomocí Mpgo.exe s parametrem
-Scenario.Zkontrolujte optimalizovaná sestavení IL do správy zdrojového kódu.
V procesu sestavení volejte Mpgo.exe s parametrem
-Importjako krok po sestavení a vygenerujte optimalizované image IL pro předání do Ngen.exe.
Tento proces zajišťuje, aby všechna sestavení měla data optimalizace. Pokud zkontrolujete aktualizovaná optimalizovaná sestavení (kroky 1 a 2) častěji, budou čísla výkonu v průběhu vývoje produktů konzistentnější.
Použití Mpgo.exe ze sady Visual Studio
V sadě Visual Studio můžete spustit Mpgo.exe (viz článek Postupy: Určení událostí sestavení (C#)) s následujícími omezeními:
Cesty v uvozovkách s koncovými lomítky nelze použít, protože makra sady Visual Studio ve výchozím nastavení používají koncové značky lomítka. (Například
-OutDir "C:\Output Folder\"je neplatný.) Chcete-li toto omezení obejít, můžete utéct koncové lomítko. (Použijte například-OutDir "$(OutDir)\"místo toho.)Ve výchozím nastavení Mpgo.exe není v cestě sestavení sady Visual Studio. Musíte buď přidat cestu do sady Visual Studio, nebo zadat úplnou cestu na příkazovém řádku Mpgo. V sadě Visual Studio můžete použít
-Scenarioparametr nebo-Importparametr v události po sestavení. Typickým procesem je však jednorázové použití-Scenarioz příkazového řádku pro vývojáře pro Visual Studio a následné-Importpoužití k aktualizaci optimalizovaných sestavení po každém sestavení, například:"C:\Program Files\Microsoft Visual Studio 11.0\Team Tools\Performance Tools\mpgo.exe" -import "$(OutDir)tmp" -assemblylist "$(TargetPath)" -outdir "$(OutDir)\".
Examples
Následující příkaz Mpgo.exe z příkazového řádku pro vývojáře pro Visual Studio optimalizuje daňovou aplikaci:
mpgo -scenario "C:\MyApp\MyTax.exe /params par" -AssemblyList Mytax.dll MyTaxUtil2011.dll -OutDir C:\Optimized -TimeOut 15
Následující příkaz Mpgo.exe optimalizuje zvukovou aplikaci:
mpgo -scenario "C:\MyApp\wav2wma.exe -input song1.wav -output song1.wma" -AssemblyList transcode.dll -OutDir C:\Optimized -TimeOut 15
Následující příkaz Mpgo.exe používá data z dříve optimalizovaných sestavení k optimalizaci novějších verzí sestavení:
mpgo.exe -import "C:\Optimized" -assemblylist "C:\MyApp\MyTax.dll" "C:\MyApp\MyTaxUtil2011.dll" -outdir C:\ReOptimized