Sdílet prostřednictvím


/ 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

  1. Otevřete dialogové okno projektu Stránky vlastností.Další informace naleznete v tématu Jak: otevření stránky vlastností projektu.

  2. Klepněte C/C++ složky.

  3. Klepněte Optimalizace stránky vlastností.

  4. Změnit něco pro tuhle velikost nebo rychlost vlastnost.

Programově nastavit tuto volbu kompilátoru

Viz také

Referenční dokumentace

/O možnosti (Optimalizace kódu)

Možnosti kompilátoru

Možnosti nastavení kompilátoru