Script Language Performance
元ネタはこれ。
http://codeplea.com/game-scripting-languages
まとめはまたいつかやるとして、結果の簡単なメモ書き。
最初に
本来 Script言語は 組み込みやすさ、持ってる機能などを比較すべきで
パフォーマンスはあまり重要視しない方が良いと思います。
逆に考えると、もしスクリプト言語がパフォーマンスボトルネックになる様な場合は
スクリプトを適用すべき箇所を間違えているのではないかと考えるべきだと思います。
とは言うものの(^^;)、自分もそうですけど。遅くて問題になることはあっても、
速くて問題になる事はあまりありません(遅くするのは簡単だし)。
なので、最低限そこそこのパフォーマンスがあって組み込みやすくて、使いやすい、
使ってて楽しいスクリプトを使いたいなと思ったりするわけですが、パフォーマンス面て
良くわからんですよね。
環境
Windows 8.1 Pro x64
Visual Studio 2013
32bit x86 binary
ベンチマーク結果
フィボナッチ数
C (cl with /Ox /Ot)
TotalSeconds : 3.1064048
LuaJIT 2.0.3
TotalSeconds : 4.5531575
node.js 0.10.30
TotalSeconds : 5.5039015
Pawn 4.0.4733 (pawncc with -O3 -d0)
TotalSeconds : 43.1341449
Lua 5.2.3
TotalSeconds : 58.716706
Squirrel 3.0.6
TotalSeconds : 133.317695
PSL 1.2.0
だいぶ待ってみたんだけど、終わらない(^^;
再帰回数を30回前後にすると30秒程度で終わるのですが、、、。
デフォルトの43回だと終わりません。CPUは 100%はりついているので
頑張って計算してるんだとは思います。
追記: 終わりました!
TotalSeconds : 1132.5964025
・・・(^^;
追記: AngelScriptの結果
AngelScript (2.29.1/JIT)
TotalSeconds : 40.4271541
AngelScript (2.29.1)
TotalSeconds : 51.7557788
JIT無しでLuaよりちょっと速いぐらい。
追記: Squirrel 3.1の結果
Squirrel (3.1beta1)
TotalSeconds : 133.6743091
変わってないじゃん(^^;
まぁ、ひたすら関数を再帰呼び出ししてるだけのベンチマークなんで、
次はもう少し楽しいのにしよう。