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

変わってないじゃん(^^;

まぁ、ひたすら関数を再帰呼び出ししてるだけのベンチマークなんで、
次はもう少し楽しいのにしよう。

Leave a Reply

Your email address will not be published. Required fields are marked *