Udostępnij za pośrednictwem


/ Os, /Ot (kod małych korzyść, korzyść szybki kod)

Minimalizuje lub maksymalizuje rozmiar bibliotek DLL i exe.

/Os
/Ot

Uwagi

/Os(Kod małych korzyść) minimalizuje rozmiar bibliotek DLL i exe nakazuje kompilatorowi mogą pomóc w ulepszeniu rozmiar nad prędkości.Kompilator może zmniejszyć wielu konstrukcje c i C++ do funkcjonalnie podobne sekwencje kodu maszynowego.Od czasu do czasu różnice te oferują kompromisy rozmiar w zależności od szybkości./Os i /Ot opcje umożliwiają określanie preferencji dla siebie:

/Ot(Korzyść Fast kod) maksymalizuje prędkości bibliotek DLL i exe zostanie poinstruowany, kompilator rekomenduje prędkości powyżej wielkości.(Jest to wartość domyślna). Kompilator może zmniejszyć wielu konstrukcje c i C++ do funkcjonalnie podobne sekwencje kodu maszynowego.Od czasu do czasu różnice te oferują kompromisy rozmiar w zależności od szybkości.Opcja /Ot jest implikowane przez zmaksymalizować szybkość (/O2) opcja./O2 Opcja łączy kilka opcji do wyprodukowania bardzo szybki kod.

Jeśli korzystasz z /Os lub /Ot, a następnie należy określić /Og do optymalizacji kodu.

[!UWAGA]

Informacje zebrane od przebiegu badania profilowania zastąpią optymalizacje, które w przeciwnym razie byłyby efektu Jeśli określisz /Ob, /Os, lub /Ot.Aby uzyskać więcej informacji Optymalizacje przewodnikiem profilu.

x 86 szczególne

Poniższy przykład kodu pokazuje różnicę między kod małych korzyść (/Os) opcje i kod Fast korzyść (/Ot) opcja:

[!UWAGA]

Niżej przedstawiono oczekiwane zachowanie podczas korzystania z /Os lub /Ot.Jednakże zachowanie kompilator wydania wersji może spowodować różne opcje optymalizacji dla kodu poniżej.

/* 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 pokazano we fragmencie kodu maszynowego poniżej, gdy DIFFER.c jest kompilowana na rozmiar (/Os), implementuje kompilator pomnożyć wyrażenie w instrukcji return jawnie jako mnożenie produkować sekwencji wolniej, ale krótki kod:

   mov    eax, DWORD PTR _x$[ebp]
   imul   eax, 71                  ; 00000047H

Przemiennie, gdy kompilowany DIFFER.c dla prędkości (/Ot), implementuje kompilator pomnożyć wyrażenie w instrukcji return jako seria shift i LEA instrukcje do wyprodukowania szybki, ale dłuższy Sekwencja kodu:

   mov    eax, DWORD PTR _x$[ebp]
   mov    ecx, eax
   shl    eax, 3
   lea    eax, DWORD PTR [eax+eax*8]
   sub    eax, ecx

KONIEC x 86 szczególne

Aby ustawić tę opcję kompilatora w środowisku projektowym programu Visual Studio

  1. Otwórz projekt Stron właściwości okno dialogowe.Aby uzyskać szczegółowe informacje, zobacz Jak: Otwórz strony właściwości projektu.

  2. Kliknij przycisk C i C++ folder.

  3. Kliknij przycisk optymalizacji stronę właściwości.

  4. Modyfikowanie korzyść rozmiar lub prędkości właściwości.

Aby programowo ustawić tę opcję kompilatora

Zobacz też

Informacje

/O opcje (Optymalizacja kodu)

Opcje kompilatora

Ustawianie opcji kompilatora