SORU
18 Temmuz 2012, ÇARŞAMBA


Optimizasyon seviye-O3 g tehlikelidir ?

Ben duydum çeşitli kaynaklardan (çoğunlukla olsa bir meslektaşımın benim), bu derleme ile bir optimizasyon seviyesi -O3 g bir şekilde 'tehlikeli' ve kaçınılmalıdır genel sürece kanıtlanmış olması gerekli.

Eğer öyleyse, neden bu doğru mu? Sadece -O2 yapışmasını olmalıdır?

CEVAP
18 Temmuz 2012, ÇARŞAMBA


Gcc (2.8 vb.) ilk günlerinde ve egcs dönemlerinde ve redhat 2.96 -O3 oldukça adamcağız bazen. Ama bu on yıl kadar önce, ve -O3 diğer seviyelere oranla çok farklı değil iyileştirmeleri (buggyness).

Ancak insanlar tanımsız davranış, daha sıkı kurallara dayanarak nedeniyle, ve özellikle köşe doğduğunda dil(ler) güveniyor durumlar ortaya çıkarmak için bir eğilimi var.

Olarak kişisel bir not, ben çalışan üretim verileri ve finans sektörü için uzun yıllardır ile -O3 ve henüz yeni karşılaşılan bir hata değil olmuştur var eğer burada kullanılan -O2.

Yoğun talep, ek işte:

-O3 ve özellikle ek bayraklar gibi -funroll-loops (- O3 etkin değil) bazen daha fazla makine tarafından üretilen kod olan yol açabilir. Belirli koşullar (son derece küçük L1 talimat önbellek, cpu vb.) altında bu yavaşlama bazı iç döngü şimdi artık değil L1İ içine uydurma örneğin tüm kod nedeniyle neden olabilir. Genellikle gcc oldukça zor çok kod üretmek için değil çalışır, ama genellikle genel durum optimize beri, bu durum oluşabilir. Bu seçenek özellikle açık (döngü çözümü gibi) normalde-O3 dahil değildir ve buna göre kılavuz olarak işaretlenmiş. Gibi genellikle iyi bir fikir kullanın -O3 için üreten, hızlı, Kodu, ve sadece geri düşmek -O2 veya işletim sistemi (çalışır optimize etmek için kod boyutu) uygun olduğunda (örneğin, ne zaman bir profiler gösterir L1İ özlüyor).

Eğer aşırı optimizasyon almak istiyorsanız, masrafları bazı iyileştirmeler ile ilgili parametrede üzerinden gcc oynamak. Ayrıca unutmayın gcc şimdi becerisine sahiptir koy nitelikleri fonksiyonları kontrol optimizasyon ayarları sadece bu işlevler, çok bulunca bir sorununuz var -O3 bir fonksiyon (veya istemek için deneyin özel bayraklar için sadece bu işlevi), ihtiyacın yok derlemek için tüm dosya, hatta tüm proje ile O2.

otoh bakım devletler:- Ofast, kullanırken alınması gerekir gibi görünüyor

-Ofast-O3 iyileştirmeleri sağlar. Ayrıca tüm standart için geçerli değildir iyileştirmeler sağlar uyumlu programlar.

bana-O3 standartlarına tam uyumlu olacak şekilde tasarlanmıştır sonucuna yapar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AceHoodVEVO

    AceHoodVEVO

    12 Mayıs 2009
  • incognitotraveler

    incognitotra

    27 Mayıs 2010
  • Michael Lummio

    Michael Lumm

    25 Mayıs 2007