Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
cdeğerleribüç ifade arasında değişmezse, derleyici hesaplamasınıb + cgeçici bir değişkene atayabilir ve için bu değişkenib + 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
registersözcük varsayılan olarak yoksayılır ve veya altında/std:c++17bir 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 + ydöngü gövdesinde değişmez:i = -100; while( i < 0 ) { i += x + y; }İyileştirmeden sonra,
x + ydöngü her yürütülürken değil bir kez hesaplanır:i = -100; t = x + y; while( i < 0 ) { i += t; }Derleyici, ,
noaliasveyarestrictile__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
gbirlikte 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
Projenin Özellik Sayfaları iletişim kutusunu açın. Ayrıntılar için bkz . Visual Studio'da C++ derleyicisi ve derleme özelliklerini ayarlama.
Yapılandırma Özellikleri>C/C++>Komut Satırı özellik sayfasını seçin.
Ek Seçenekler kutusuna derleyici seçeneğini girin.
Bu derleyici seçeneğini program üzerinden ayarlamak için
- Bkz. AdditionalOptions.