/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ğerlerib
üç ifade arasında değişmezse, derleyici hesaplamasınıb + c
geçici bir değişkene atayabilir ve için bu değişkenib + c
kullanabilir: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, ,
noalias
veyarestrict
ile__restrict
ayarladığı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
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.