Çalıştığım bir programı test ediyorum ve bunu -g ile derlediğimde 3μs daha hızlı (istatistiksel olarak önemli bir değişiklik) olduğunu görüyorum. Bu benim için hiçbir anlam ifade etmiyor - Ben -g bayrağı programın çalışmasını etkilememesi gerektiğini düşündüm, ve bunu yapsa bile daha hızlı, daha yavaş çalışmasını sağlardı.gcc -g hata ayıklama bayrağı program yürütülmesini etkiler mi?
Bana bunun neden olduğunu söyleyen var mı? Ve programlar yürütme akışını değiştirip değiştirmediği? -O ile derleme yapmıyorum çünkü tam olarak yazılı olarak çalışmam gerekiyor, ama -g bir şekilde talimatı değiştirerek daha hızlı çalışabilirse, bunu açıkça kullanmalıyım.
Bu nedenle, -g işaretinin programa ne tür değişiklikler yaptığını tam olarak bilmem gerekiyor.
Düzenleme: Çalıştığım daha fazla sınama, t-değeri ne kadar büyük olur (= fark istatistiksel olarak anlamlı olur). Bu kesinlikle ölçüm hatası değil - bir şeyler oluyor.
Ayrıca: -g her zaman programların daha hızlı çalışmasını sağlarsa, varsayılan olarak açık olur, bu yüzden programımı özel yapan ne olabilir? – Benubird
3us gerçekten istatistiksel olarak anlamlı bir değişiklik midir? Bu, sistem saatinin doğru olduğu hıza yaklaşıyor ve bu, eğer rastgele gürültüden başka bir şey olursa şaşıracaktım. – templatetypedef
Oldu. Her versiyonun 1000'den fazla testi, t istatistiği 40 d.f ile 1,8'dir. Bu yaklaşık% 95 önemli. – Benubird