2016-03-23 48 views
5

Genel olarak gcc optimizasyon bayrağını kullanan bir uygulama var -00 (optimizasyon yok). Şimdi -O1 ile derlemek istediğim bir dosya opt.c'im var ve -O0 ile dosyaların geri kalanını bırakıyorum.Aynı uygulama için farklı gcc optimizasyon seviyeleriyle dosyaları derlemek uygun mu?

Daha spesifik olması için, opt.c'nin bazı basit aritmetik işlemleri gerçekleştiren büyük bir for döngüsü vardır.

Son olarak, tüm dosyaların yanı sıra opt.c'ye sahip yalnızca 1 yürütülebilir dosya oluşturulur. Bunun herhangi bir soruna neden olup olmadığından emin değilim!

cevap

6

Evet, bu kesinlikle sorun değil. Tüm kodunuzu neden optimize etmediğinizi merak ediyorum. Optimizasyonun sorunlara neden olduğu birkaç dosya dışında genellikle her şeyi optimize ederiz.

+0

Büyük bir uygulama olduğundan, hata giriş olasılığı (?) Olabilir ve ek test gerektirebilir. Bunu önlemek için bir dosyaya uygulanır. – kp11

+4

@ kp11 Optimizasyonlar, ya kodda hata varsa ya da daha az olasıysa, derleyici ya da takım zincirinde hatalar olduğunda sorunlara neden olur. Tüm kodunuzu en iyi şekilde optimize etmeniz ve ortaya çıkan sorunları çözmeniz önemle tavsiye edilir. Bu cevabı onaylıyorum. –

+2

@HadiBrais: Bazı durumlarda, optimizasyonlar ayrıca, C'nin lehçeleri için yazılmış standartlara göre yararlı davranışlar ve garantiler sunan kodlar üzerinde hasara yol açabilir; Bazı durumlarda, geniş bir derleyicinin "optimizasyonu" nu devre dışı bırakmanın çalışma zamanı maliyeti, aksi takdirde ona karşı korunmak için gerekli olan kodun maliyetinden daha az olabilir. – supercat