とりあえず日記

VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ→VIM→秀丸エディタ(いまここ🍄)

clang-interpreter上でaobenchを動かしてみた


前回に引き続き、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」と全部込みの時間なので、実は恐ろしく無駄なく高速に動作しているんじゃ無いかと。

環境

ダウンロード

今回使用したファイルはGithubへアップしました。
https://github.com/ohtorii/clang-interpreter-aobench

その他

VisualStudioにはdrando48(乱数生成関数)がないため、こちらから拝借してきました。
http://www001.upp.so-net.ne.jp/isaku/rand.html