TadaoYamaokaの開発日記

個人開発しているスマホアプリや将棋AIの開発ネタを中心に書いていきます。

コンパイラによるFFTの速度比較(再測定)

以前の日記で、コンパイラごとの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に置いておきます。

github.com