/Os, /Ot (Preferuj mały kod, Preferuj szybki kod)
Zmniejsza lub zwiększa rozmiar plików exe i biblioteki dll.
/Os
/Ot
Uwagi
/Os(Kod małych korzyść) minimalizuje rozmiar plików exe i biblioteki DLL nakazując kompilator na rzecz rozmiar kosztem szybkości.Kompilator może zmniejszyć wielu konstrukcje C i C++ do sekwencji funkcjonalnie podobne kod maszynowy.Od czasu do czasu różnice te oferują kompromisy rozmiar w zależności od szybkości./Os i /Ot opcje pozwalają określić preferencje dla siebie:
/Ot(Korzyść szybko kod) maksymalizuje szybkość bibliotek DLL i exe nakazując kompilator na rzecz prędkości powyżej wielkości. (Jest to wartość domyślna). Kompilator może zmniejszyć wielu konstrukcje C i C++ do sekwencji funkcjonalnie podobne kod maszynowy.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) opcji./O2 Opcji łączy w sobie kilka opcji do tworzenia kodu bardzo szybko.
Jeśli używasz /Os lub /Ot, a następnie należy także określić /Og do optymalizacji kodu.
[!UWAGA]
Informacje zebrane podczas profilowania przebiegu testowego zastępują optymalizacje, które normalnie byłyby, jeśli zostanie określony /Ob, /Os, lub /Ot.Aby uzyskać więcej informacji, zobacz Optymalizacje sterowane profilem
x 86 szczególne
Poniższy przykład kodu pokazuje różnicę między kod małych korzyść (/Os) opcje i korzyść szybko kod (/Ot) opcja:
[!UWAGA]
Niżej przedstawiono oczekiwane zachowanie podczas korzystania z /Os lub /Ot.Jednakże zachowanie kompilatora w wersji release może skutkować różne opcje optymalizacji dla poniższy kod.
/* 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 kompilowany dla rozmiaru (/Os), wdraża kompilator pomnożyć wyrażenie w instrukcji return jawnie jako mnożenie do produkcji krótki, ale wolniej sekwencji kodu:
mov eax, DWORD PTR _x$[ebp]
imul eax, 71 ; 00000047H
Na przemian, kiedy DIFFER.c jest kompilowany dla prędkości (/Ot), wdraża kompilatora pomnożyć wyrażenie w instrukcji return jako seria shift i LEA instrukcje do produkcji szybki, ale dłużej sekwencji 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 programowania Visual Studio
Otwórz okno dialogowe Strony właściwości projektu.Szczegółowe informacje – zobacz: Porady: otwieranie stron właściwości projektów.
Kliknij folder C/C++.
Kliknij przycisk optymalizacji strona właściwości.
Modyfikowanie korzyść rozmiaru lub prędkości właściwości.
Aby programowo ustawić tę opcję kompilatora
- Zobacz FavorSizeOrSpeed.