Yanıtlar:
Gentoo'da kullanıldı ve alışılmadık bir şey fark etmedim.
-O3
çeşitli dezavantajları vardır:
-O2
veya ' dan daha yavaş kod üretir -Os
. Bazen döngü açma nedeniyle daha uzun kod üretir, bu da kodun daha kötü önbellek performansı nedeniyle daha yavaş olabilir.-O3
.-O3
bayrak olacak değil I / O bağlamı anahtarlama veya hız maliyetini değiştirin. Genel performansın% 0.1'inden daha az hızlanması gibi bir şeyin buna değeceğini düşünmüyorum.Optimizasyon seviyelerini değiştirirseniz, büyük bir takım zinciri parçasının (özellikle glibc) düzleşmediğini unutmayın. İnşa sistemi, çoğu aklı başında dağıtımda bu bölümler için -O tercihlerinizi yoksayacak şekilde ayarlanmıştır.
Basitçe söylemek gerekirse, bazı temel kütüphane ve işletim sistemi özellikleri, çoğu durumda daha hızlı olana değil, aslında söylediklerini yapan koda bağlıdır. Özellikle -fgcse-reload sonrası (-O3 tarafından etkinleştirilir) garip sorunlara neden olabilir.
Son 10 yıl içinde 1000'den fazla paket ile -O3 -march=native
küresel olarak kullanılan birden fazla Gentoo sistemi kullanıyorum ve henüz bu efsanevi istikrar sorunlarından herhangi birine girmedim -O3
. CPU yoğun uygulamaların (matematik / bilim uygulamaları gibi) karşılaştırmaları -O3
, daha hızlı kod üretmek için sürekli olarak gösterilir , sonuçta olmasaydı anlamsız olurdu. Masaüstü uygulamalarının çoğunluğu için CFLAGS
, IO'ya bağlı oldukları için zaten çok önemli değil, ancak CPU'ya bağlı olan sunucu tarafı şeyler için çok önemlidir.
-O3, yalnızca yazmaç kullanımı ile ilgili belirli varsayımlar, yığın çerçevelerinin nasıl etkileşime girdiği ve işlev yeniden girilmesinin doğru olduğu durumlarda güvenli olan bazı agresif optimizasyonlar kullanır ve bu varsayımların özellikle satır içi montaj olduğunda çekirdek gibi bazı kodlarda doğru olacağı garanti edilmez. kullanılır (çekirdeğin ve sürücü modüllerinin çok düşük bazı kısımlarında olduğu gibi).
-O2
Eğer (ve çoğu uygulama üzerinde -o3 ve diğer optimizasyonlar düğmeleri kullanarak paçayı mümkün olmakla birlikte olabilir hız iyileştirmeleri neden), böyle ince ayarlar (derleyici, binutils bu bina için gerekli çekirdek kendisi veya araç zinciri üzerinde kullanmakta tereddüt ediyorum, vb.).
Bir düşünün: Raid ve ext3 alt sistemlerinin% 5'lik bir performans kazancı, sistem çökmelerine veya potansiyel veri kaybı ve / veya bozulmasına değer mi?
Oynattığınız Quake bağlantı noktası veya DVD koleksiyonunuzu divx dosyalarına kopyalamak için kullandığınız ses / video kodekleri için tüm düğmeleri değiştirin. Muhtemelen bir gelişme göreceksiniz. Kaybedecek zamanınız ve kaybetmek için taşıyabileceğiniz veriler yoksa, çekirdeği karıştırmayın.
-O0
şekilde hiç desteklenmiyor! stackoverflow.com/questions/29151235/…