2010年6月21日月曜日

Kyoto Cabinetとluaとluajit

lua-5.14用にコンパイルした(/usr/local/lib/lua/5.1/)kyotocabinet.soを
luajitから使ってみました。luaとの違いは、おそらくループまわりの高速化になります。

vmplayer上の1core 2GHzで比較

$ lua kctest.lua order "casket.kch" 1000000

opening the database:
time: 0.001
setting records:
time: 4.013
getting records:
time: 3.867
removing records:
time: 4.019
closing the database:
time: 0.008

$ luajit kctest.lua order "casket.kch" 1000000
opening the database:
time: 0.001
setting records:
time: 3.576
getting records:
time: 3.483
removing records:
time: 3.417
closing the database:
time: 0.009

12%前後高速化したようです。

ちなみに、/usr/local/lib/kyotocabinet.soをldconfigしてないと、
luajitでは、require "kyotocabinet"で、セグメントフォルトしました。
luaでは、kyotocabinet.soが、見つからないというメッセージになりました。

ここら辺の面倒見は、luajitよりluaのが、いいようです。

仕組みを分かってないが、luajit-2.00-beta4.soと、リンクする必要はないのか。
必要なのは、Tokyo Tyrantみたいに、luaをKyoto Cabinet側に組み込むときかな?

そして、今後のlua-5.2.0登場で、luajitがどうなるのか戦々恐々としてます。

0 件のコメント :