前回に引き続き、clang-interpreterを試してます。
インタプリタの実行速度を測るためベンチマーク界で定評のあるaobenchを動かしてみました。
冒頭の画像は出力結果です。
測定方法
インタプリタのコマンドライン引数に aobench.cpp を与えて時間を計りました。
clang-interpreter.exe aobench.cpp
- aobench.cpp を clang のインタプリタ上で動かしています。clang で aobench.cpp をコンパイルし実行ファイル(.exe)を作ったわけではありません。
- clang-interpreter.exe はVC2010リリースモードでビルドしています。
実行時間
解像度 | C/C++(※1) | clang-interpreter |
---|---|---|
256x256 | 1,040(ms) | 5,887(ms) |
512x512 | 4,155(ms) | 23,364(ms) |
1024x1024 | 17,851(ms) | 94,805(ms) |
(※1)速度比較のため aobench.cpp を VisualStudio2010 ReleaseMode&最大限の最適化でビルドし実行ファイルを生成。
clang-interpreterは数字だけ見ると約6倍の実行時間がかかっていますが、「ソースコードの字句解析・プリプロセス・コード生成・JIT...etc」と全部込みの時間なので、実は恐ろしく無駄なく高速に動作しているんじゃ無いかと。
環境
- Windows7 64bit
- Intel Core i7 CPU 3.07GHz
- Visual Studio 2010
ダウンロード
今回使用したファイルはGithubへアップしました。
https://github.com/ohtorii/clang-interpreter-aobench
その他
VisualStudioにはdrando48(乱数生成関数)がないため、こちらから拝借してきました。
http://www001.upp.so-net.ne.jp/isaku/rand.html