/ 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
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.
Kliknij przycisk C i C++ folder.
Kliknij przycisk optymalizacji stronę właściwości.
Modyfikowanie korzyść rozmiar lub prędkości właściwości.
Aby programowo ustawić tę opcję kompilatora
- See FavorSizeOrSpeed.