Lua vs Squirrel

いや別に戦ったわけじゃないんですが。
5
めるぽん.c @melponn

そういえば Squirrel JIT って Xbyak で作ってるらしいけど、やろうと思えば他の環境に移すのも簡単にできたりするのかな・・・

2010-11-01 21:20:39
普通のC++使い、銀天すばる @SubaruG

っていうか本当に速度は正義なのよー。正直 速度がどうでもいいなら Lua じゃなくて Python 使うし僕は。

2010-11-01 21:23:13
めるぽん.c @melponn

@SubaruG 速度が重要な割には Lua さんは配列をサポートしていないとか何とか・・・そんなの気にならないぐらいにアクセス速いとかですか?

2010-11-01 21:24:50
普通のC++使い、銀天すばる @SubaruG

@melponn テーブルの整数部分に対するアクセス速度は普通の配列と同じですね。むしろ型を switch しないぶんだけ高速です。

2010-11-01 21:25:49
めるぽん.c @melponn

多分 Squirrel は速度そんなに出ない気がする。あまり一般的に使われてないからそこまで頑張って最適化してない気がする、多分。

2010-11-01 21:25:53
めるぽん.c @melponn

@SubaruG O(1)ってだけなら分かりますけど、配列と同じってすごいですねぇ・・・

2010-11-01 21:29:16
普通のC++使い、銀天すばる @SubaruG

malloc の呼び出しコストがボトルネックに感じてしまう程度にはLuaは速いですハイ

2010-11-01 21:29:32
普通のC++使い、銀天すばる @SubaruG

ある意味ではC++と同じですね。動的メモリ確保のコストが気になる程度に高速って。

2010-11-01 21:31:43
普通のC++使い、銀天すばる @SubaruG

数値インデックスに対して最適化された専用データ構造を作ろうとして、かえって全体が複雑になって処理を膨らませてしまうのが、よくある言語。Luaは最初からテーブルで全てやることを前提にしてるので構造はシンプルだしテーブルは速い。

2010-11-01 21:33:20
普通のC++使い、銀天すばる @SubaruG

反面、バグは生まれやすいよね。仕方ない。

2010-11-01 21:34:10
普通のC++使い、銀天すばる @SubaruG

構造がシンプルだから言語自体に由来するバグを考えずに済むのがせめてもの救いかにゃー。

2010-11-01 21:34:41
普通のC++使い、銀天すばる @SubaruG

「バグを埋めこまない努力? それして速くなるの?」ってのがLua的発想なんだと思う。

2010-11-01 21:35:47
普通のC++使い、銀天すばる @SubaruG

その辺は、速度は正義で、かつコンパイル時にバグをほとんど潰せるC++に軍配が上がるところだにゃー。そもそも用途違うけど。

2010-11-01 21:36:47
めるぽん.c @melponn

うーむ、Lua と Squirrel の速度をちゃんと比較してるページは無いのかな・・・Squirrel の実行速度は Lua の半分ぐらいらしいんだけど、ちゃんとコードとか挙げられてるページが無い、と考えて気がついたけどコードがあっても Lua のコードは読めないっていう

2010-11-01 21:40:49
alwei @aizen76

@melponn 確かに実際に比較されているところは見たことがないですね…

2010-11-01 21:44:14
めるぽん.c @melponn

http://forum.squirrel-lang.org/default.aspx?g=posts&t=1271 お、あった。6倍遅い?けどさすが Squirrel Forum、本人が反論してるや・・・

2010-11-01 21:48:33
めるぽん.c @melponn

@kambk おー、何かほんとなのか怪しくなる感じですけどそれだと倍ぐらい遅いんですね

2010-11-01 21:51:07
めるぽん.c @melponn

やっぱりJITするしか・・・!

2010-11-01 21:52:11
めるぽん.c @melponn

LuaJIT なら Lua の 15 倍速くなるのか・・・

2010-11-01 21:57:15
alwei @aizen76

LuaJITの速度は異常… RT @melponn: LuaJIT なら Lua の 15 倍速くなるのか・・・

2010-11-01 21:57:58
めるぽん.c @melponn

まあ自分は速度が問題になるところがあればそこだけ C++ 側に戻して処理してもらうって方針だからあまり考えなくていっか

2010-11-01 22:05:52
めるぽん.c @melponn

しかし無駄は省かれるべきなので Squirrel の無駄な部分とか高速化できそうな場所とか探してみるかな・・・

2010-11-01 22:13:52
めるぽん.c @melponn

まあそんなこと言ってるからいつまで経っても Squirrel 使って何か作るという目標が達成できないわけなのですが

2010-11-01 22:14:20
めるぽん.c @melponn

うーん、速度に関しては今後もっと使われるようになってからに期待ということにしておこう

2010-11-01 22:51:59