Aracılığıyla paylaş


/ 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

  1. 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.

  2. Tıklatın c/C++ klasörü.

  3. Tıklatın en iyi duruma getirme özellik sayfası.

  4. Değiştirmek Favor boyutu veya hız özelliği.

Bu derleyici seçeneği programlı olarak ayarlamak için

Ayrıca bkz.

Başvuru

/o seçenekler (kodu en iyi duruma getir)

Derleme Seçenekleri

Derleyici seçeneklerini ayarlama