写真提供:マイナビニュース

写真拡大

Phoronixは3月3日(米国時間)、「GCC vs. Clang Benchmark Comparison At Varying Optimization Levels」において、GCC 5.3.1とLLVM Clang 3.8のベンチマーク結果を公開した。これまで同様のベンチマーク結果は定期的に公開されているが、今回の結果には最適化オプションを指定した場合の結果も含めてGCCとLLVM Clangの比較結果が掲載されている。

最適化オプションとしては「-O0」「-O1」「-O2」「-O2 -march=native」「-O3」「-O3 -march=native」「-Ofast -march=native」が使われている。ベンチマーク結果はそれぞれ得手不得手があるが、GCCのほうが若干高速な結果を示している。最適化オプションによる効果は認められ、特に-O2を指定することで比較的十分な高速化が実現されていることを確認できる。

最適化オプションが指定されていない状態でのバイナリと、最適化オプションを指定してビルドされたバイナリとでは処理性能が大きく異なることが知られている。このため、プロダクションユースで使われる大抵のバイナリは最適化オプションを指定した状態でビルドされるようになっている。中でも、-O2はビルド時間と生成されるバイナリの性能とのバランスが良いとされ、広くデフォルトのオプションとして活用されている。

(後藤大地)