私は作業しているプログラムをテストしています。-gでコンパイルすると3μs(統計的に有意な変化)速く実行されています。これは私には意味がありません - 私は、-gフラグがプログラムの実行に影響を及ぼさないと考えていました。gcc -gデバッグフラグはプログラムの実行に影響しますか?
これはなぜ起こっているのですか?そして、それがプログラムの実行フローを変更するかどうか? -Oとコンパイルしていないのは、書かれたとおりに実行する必要があるからですが、-gが命令の順序を変更するとどうにかしてより速く実行できるかどうかは、明らかにそれを使用する必要があります。
ですから、-gフラグがどのような変更をプログラムに加えるのかを正確に知る必要があります。
編集:実行するテストが多いほど、t値が大きくなる(統計的に有意な差が生じる)。これは間違いなく測定エラーではありません - 何かが起こっています。
また、-gを指定するとプログラムの実行速度が向上しますが、デフォルトではオンになるため、プログラムを特別なものにすることがありますか? – Benubird
3usは実際に統計的に有意な変化ですか?システムクロックが正確な速度に近づいています。ランダムノイズ以外のものがあれば、私は驚くでしょう。 – templatetypedef
です。各バージョンの1000以上のテストでは、t統計値は40 d.f。で1.8です。それは約95%重要です。 – Benubird