以前の日記で、コンパイラごとのFFTの実行速度を比較した結果を記載しましたが、この記事を見て、gccがVisual C++に比べて速いという内容が以前の私の測定と違っていたので再測定を行いました。
この記事で使用しているgccは、MSYS2のものを使用しているようなので測定条件が違っていました。
以前に私が測定したのは、cygwin1.7.33のgccでバージョン4.8でした。
MSYS2(MinGW-w64)のgccのバージョンは5.4.0です。
gccのオプションは前回と同じ-O3としました。
Visual Studioは最新の2015を使用しました。
clang(llvm)もMSYS2(MinGW-w64)のもので再測定しました。
Java8も再測定し、今回はC#も測定に加えました。
測定PCは、以前よりアップグレードしており、CPUがCore i7 6700K 4.0GHzとなっています。
再測定結果は以下の通りです。
コンパイラ | 5回実行の平均 |
Visal C++ x86 | 415.4ms |
Visal C++ x64 | 406.2ms |
gcc 5.4.0 | 378.2ms |
clang(llvm) 3.8.0 | 396.8ms |
Java8 | 611ms |
C# | 732ms |
gccが一番速いという結果になりました。
Visual C++よりgccが速いとは驚きました。
clangもVisual C++に勝っています。
今回測定対象に追加したC#ですが、Java8よりも遅いという結果でした。
測定に用いたソースをGitHubに置いておきます。