2011-12-07 9 views
2

おそらく私の質問は奇妙に聞こえるかもしれませんが、私の主張は:私はGCCを使ってプログラムをコンパイルする必要があります。ソースからGCCをコンパイルすると、新しいGCCでコンパイルされたソフトウェアからわずかなパフォーマンスが得られます。私は何を期待するべきですか?コンパイラのコンパイルはコンパイルされたプログラムに影響する可能性がありますか?

+0

No.コンパイルは決定論的なプロセスです。 –

+1

あなたはどのようなアーキテクチャを持っているのか、どのコンパイラを持っているのか、ビルドするためにどのようなコンパイラを提案しているのかは言わないでください。まったく同じオプションで正確に同じコンパイラを再構築することは何もしませんが、アップグレードは別の話です。 – ams

答えて

0

パフォーマンスの違いは、通常は何もないか無視できる程度です。

非常にまれな、非常にまれなケースでは、目立った違いが見られますが、常にパフォーマンスの向上はありません。分解も可能です。

1

ないあなたがなどcloog、グラファイトを、GCCの新しいバージョンを構築する、または有効にしている場合を除き

+0

しかし、それは違いを生むことができます。これは通常は小さいです(数パーセント) –

5
  1. あなたが旗を最適化して構築されたコンパイラのうちのいずれかのより高速なプログラムを取得することはありません。プログラムはコンパイラの出力であり、最適化は正しいプログラムの出力を変更しないので、プログラムは同じままです。
  2. ただし、ディストリビューターが不完全なコンパイラを出荷している場合は、新しいオプションから利益を得ることができます。有効にするオプション(特定のターゲットアーキテクチャのバリエーションなど)については、GCCのマニュアルを参照してください。現在のコンパイラビルドで有効にできない場合は、カスタムビルドコンパイラに潜在的な可能性があります。しかし、の価値がになることはまずありません。
関連する問題