/ Os, /Ot (kód malé něco pro tuhle, něco pro tuhle rychlé kód)
Minimalizuje nebo maximalizuje velikost EXEs a knihovny DLL.
/Os
/Ot
Poznámky
/Os(Něco pro tuhle malou kód) minimalizuje velikost EXEs a knihovny DLL odebíraném kompilátor preferovat velikost před rychlostí.Kompilátor může snížit mnoho c a C++ konstrukce funkčně podobné sekvence strojový kód.Někdy nabízejí tyto rozdíly poměry velikosti a rychlosti./Os a /Ot možnosti umožňují určit priority pro jednu nad druhou:
/Ot(Něco pro tuhle rychlé kód) maximalizuje rychlost EXEs a knihovny DLL v odebíraném kompilátoru upřednostnit rychlost přes velikost.(Toto je výchozí nastavení). Kompilátor může snížit mnoho c a C++ konstrukce funkčně podobné sekvence strojový kód.Někdy nabízejí tyto rozdíly poměry velikosti a rychlosti.Možnost /Ot je zahrnuto v rychlosti Maximalizovat (/O2) možnost./O2 Možnost kombinuje několik možností k vytvoření kódu velmi rychle.
Používáte-li /Os nebo /Ot, pak musíte zadat /Og optimalizace kódu.
[!POZNÁMKA]
Informace získané ze zkušební jízdy profilování přepíše optimalizace, které by jinak v efekt zadáte /Ob, /Os, nebo /Ot.Více informací naleznete v tématu Optimalizace s asistencí profilu.
x 86 specifické
Následující příklad kódu ukazuje rozdíl mezi malé kód něco pro tuhle (/Os) možnosti a něco pro tuhle rychlé kód (/Ot) možnost:
[!POZNÁMKA]
Následuje popis očekávané chování při použití /Os nebo /Ot.Však kompilátor chování od vydání verze může mít za následek různé optimalizace pro následující kód.
/* differ.c
This program implements a multiplication operator
Compile with /Os to implement multiply explicitly as multiply.
Compile with /Ot to implement as a series of shift and LEA instructions.
*/
int differ(int x)
{
return x * 71;
}
Jak fragment kódu počítače níže ukazuje, kdy DIFFER.c je kompilován pro velikost (/Os), implementuje kompilátoru násobit výraz v příkaz return explicitně jako násobit k výrobě pomalejší, ale krátké sekvence kódu:
mov eax, DWORD PTR _x$[ebp]
imul eax, 71 ; 00000047H
Také při DIFFER.c sestavit pro rychlost (/Ot), implementuje kompilátoru násobit výraz jako řadu shift příkaz return a LEA pokyny k vytvoření rychlé, ale delší sekvenci kódu:
mov eax, DWORD PTR _x$[ebp]
mov ecx, eax
shl eax, 3
lea eax, DWORD PTR [eax+eax*8]
sub eax, ecx
Konec x 86 specifické
Chcete-li nastavit tuto možnost kompilátoru ve vývojovém prostředí Visual Studio
Otevřete dialogové okno projektu Stránky vlastností.Další informace naleznete v tématu Jak: otevření stránky vlastností projektu.
Klepněte C/C++ složky.
Klepněte Optimalizace stránky vlastností.
Změnit něco pro tuhle velikost nebo rychlost vlastnost.
Programově nastavit tuto volbu kompilátoru
- Viz téma FavorSizeOrSpeed.