/ Os, /Ot (Favor küçük kod, Favor hızlı kod)
Simge durumuna küçültür veya kilitleyebilecek ve dll dosyalarının boyutunu büyütür.
/Os
/Ot
Notlar
/Os(Favor küçük kod) derleyici hızından boyutu dikkate söyleyerek kilitleyebilecek ve dll dosyalarının boyutunu azaltır. Derleyici birçok c ve C++ yapýlarý makine kodu işlevsel kısımlarının azaltabilirsiniz. Bazen Bu farklar Artıları ve eksileri hızı ve boyutu sunar. /Os Ve /Ot seçenekler bir diğerinin üzerine bir tercih belirlemenizi sağlar:
/Ot(Favor hızlı kodu) derleyici boyutu üzerinde hızını dikkate söyleyerek kilitleyebilecek ve DLL'leri hızını en üst düzeye çıkarır. (Varsayılan değer budur.) Derleyici birçok c ve C++ yapýlarý makine kodu işlevsel kısımlarının azaltabilirsiniz. Bazen, bu farklar Artıları ve eksileri hızı ve boyutu sunar. /Ot seçeneği en üst düzeye hızını örtülü (/O2) seçeneği. /O2 Seçeneği çok hızlı kod üretmek için çeşitli seçenekler birleştirir.
Kullanırsanız, /Os veya /Ot, sonra da belirtmeniz gerekir /Og kodu en iyi duruma getirme.
Not
Sınama çalıştırır profiling toplanan bilgileri geçersiz kılma belirtirseniz, aksi durumda etkili olacak en iyi duruma getirme /Ob, /Os, veya /Ot.Daha fazla bilgi için bkz. Profil destekli en iyi duruma getirme.
x 86 özel
Aşağıdaki kod örneği Favor küçük kod arasındaki farkı gösterir (/Os) seçenekleri ve Favor hızlı kod (/Ot) seçeneği:
Not
Kullanırken, Beklenen davranış aşağıdaki açıklar /Os veya /Ot.Ancak, derleyici davranış sürüm sürüm aşağıdaki kod optimizasyonu farklı olmasına neden olabilir.
/* 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;
}
Makine aşağıdaki kod parçasında gösterildiği gibi ne zaman DIFFER.c derlenmiş boyutu (/Os), derleyici Implements return ifadesini ifadesinde çarpmak açıkça olarak bir çarpın kodu kısa ancak daha yavaş bir dizi üretmek için:
mov eax, DWORD PTR _x$[ebp]
imul eax, 71 ; 00000047H
Alternatif olarak, ne zaman DIFFER.c derlenmiş hız için (/Ot), derleyici Implements return ifadesini shift bir dizi olarak ifade çarpma ve LEA kod hızlı ancak daha uzun bir dizi oluşturmak için yönergeleri:
mov eax, DWORD PTR _x$[ebp]
mov ecx, eax
shl eax, 3
lea eax, DWORD PTR [eax+eax*8]
sub eax, ecx
Son x 86 özel
Visual Studio geliştirme ortamındaki bu derleyici seçeneğini ayarlamak için
Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz. Nasıl yapılır: Proje özellik sayfalarını açın.
Tıklatın c/C++ klasörü.
Tıklatın en iyi duruma getirme özellik sayfası.
Değiştirmek Favor boyutu veya hız özelliği.
Bu derleyici seçeneği programlı olarak ayarlamak için
- Bkz: FavorSizeOrSpeed