2014年9月21日日曜日

Booのベンチマーク

Boo(http://boo.codehaus.org/)という言語があるらしい。 python likeな文法でCLR上で動作するとのこと。気になるのはpythonと比較した場合のパフォーマンスだけど、静的型付けなどpythonよりも速く動きそうな特徴を持っているので期待できそう。
などのサイトを見ると、CPythonよりも高速、フィボナッチ数を求めるベンチマークではpypyよりも速いという結果が出ている。 もうちょっと他のベンチマークの結果も知りたかったのでpythonのベンチマーク(Unladen Swallow Benchmarks)の一部をBoo言語に移植してpythonの結果と比較してみた。結果は下記の通り。

測定環境

% uname -a
Linux nkmbp1 3.13.0-35-generic #62-Ubuntu SMP Fri Aug 15 01:58:42 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
% python --version
Python 2.7.6
% mono --version
Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-4ubuntu1)
Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com
        TLS:           __thread
        SIGSEGV:       altstack
        Notifications: epoll
        Architecture:  amd64
        Disabled:      none
        Misc:          softdebug
        LLVM:          supported, not enabled.
        GC:            sgen
% pypy --version
Python 2.7.3 (2.2.1+dfsg-1, Nov 28 2013, 05:13:10)
[PyPy 2.2.1 with GCC 4.8.2]
実行時間の測定はtimeコマンドで実施。 boocの結果はコンパイル時間を含まず、実行時間のみ。

bm_float.py

関数test_float(count)を50回実行
python 7.582 sec
pypy 1.600 sec
booi 4.784 sec
booc 0.909 sec

bm_call_method.py

関数test_float(count)を100回実行
python 38.316 sec
pypy 1.266 sec
booi 1.022 sec
booc 0.538 sec
うーん。。。めちゃくちゃ小さなベンチマークなので、あくまで参考程度の結果ですが、この結果だけ見るとpypyでいいかなってなっちゃいますね。C#に慣れてる人、速度に問題があったらコンパイルする手間をいとわない人はBooを使う価値があるかもしれませんね。

0 件のコメント:

コメントを投稿