/Og (Genel İyileştirmeler)

Kullanımdan kaldırıldı. Yerel ve genel iyileştirmeler, otomatik kayıt ayırma ve döngü iyileştirme sağlar. Bunun yerine (Boyutu Simge Durumuna Küçült) veya /O2 (Hızı En Üst Düzeye Çıkar) kullanmanızı /O1 öneririz.

Sözdizimi

/Og

Açıklamalar

/Og kullanım dışı bırakıldı. İyileştirmeler etkinleştirildiğinde bu iyileştirmeler artık varsayılan olarak etkinleştirilir. İyileştirmeler hakkında daha fazla bilgi için bkz/O1. , /O2 (Boyutu Simge Durumuna Küçült, Hızı En Üst Düzeye Çıkar)veya/Ox (En Fazla Hız İyileştirmesini Etkinleştir).

altında aşağıdaki iyileştirmeler kullanılabilir /Og:

  • Yerel ve genel ortak alt ifadenin ortadan kaldırılması

    Bu iyileştirmede, ortak bir alt ifadenin değeri bir kez hesaplanır. Aşağıdaki örnekte, ve c değerleri b üç ifade arasında değişmezse, derleyici hesaplamasını b + c geçici bir değişkene atayabilir ve için bu değişkeni b + ckullanabilir:

    a = b + c;
    d = b + c;
    e = b + c;
    

    Yerel ortak alt ifade iyileştirmesi için derleyici, yaygın alt ifadeler için kodun kısa bölümlerini inceler. Genel yaygın alt ifade iyileştirmesi için derleyici, işlevlerin tamamında ortak alt ifadeleri arar.

  • Otomatik kayıt ayırma

    Bu iyileştirme, derleyicinin sık kullanılan değişkenleri ve alt ifadeleri yazmaçlarda depolamasına olanak tanır. Anahtar register sözcük varsayılan olarak yoksayılır ve veya altında /std:c++17 bir tanılamaya neden olur.

  • Döngü iyileştirme

    Bu iyileştirme, döngünün gövdesinden sabit alt ifadeleri kaldırır. En uygun döngü yalnızca döngünün her yürütmesinde değerleri değişen ifadeler içerir. Aşağıdaki örnekte, ifade x + y döngü gövdesinde değişmez:

    i = -100;
    while( i < 0 ) {
        i += x + y;
    }
    

    İyileştirmeden sonra, x + y döngü her yürütülürken değil bir kez hesaplanır:

    i = -100;
    t = x + y;
    while( i < 0 ) {
        i += t;
    }
    

    Derleyici, , noaliasveya restrictile __restrictayarladığınız diğer ad varsaymadığında döngü iyileştirme çok daha etkilidir.

    Not

    Genel iyileştirmeyi işlev bazında etkinleştirebilir veya devre dışı bırakabilirsiniz. Bu seçenekle g birlikte pragma özelliğini kullanabilirsinizoptimize.

İlgili bilgiler için bkz /Oi . (İç işlevler oluşturma) ve /Ox (En fazla hız iyileştirmesini etkinleştirme).

Bu derleyici seçeneğini Visual Studio geliştirme ortamında ayarlamak için

  1. Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.

  2. Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.

  3. Ek Seçenekler kutusuna derleyici seçeneğini girin.

Bu derleyici seçeneğini program üzerinden ayarlamak için

Ayrıca bkz.

MSVC Derleyicisi Komut Satırı Söz Dizimi