crystal
各種ベンチマークや軽く触ってみた感じでは早いんだけど、他の言語と比べてどれくらいの速さなのかわからなかったのでtinysegmenterをcrystalにポートして見比べることにしてみた。
mhagiwaraさんのTinySegmenter.py を参考にそのまま書き写した状態。最適化したらベンチマークの意味ないので、個人的に読みづらかった所以外は同じデータ構造になるようにしている。(TODO:実行結果が同じかどうかチェックしてない)
chezouさんの他言語のベンチマークと実装
https://github.com/chezou/TinySegmenter.jl
tinysegmenter.cr
https://gist.github.com/ikasamt/51f90cdf43c41226dc6a
実行結果
$ crystal build --release tinysegmenter.cr
$ ./tinysegmenter
2015-10-30 20:48:57 +0900
2015-10-30 20:49:01 +0900
"00:00:03.9918650 sec"
$ julia -L ../src/TinySegmenter.jl benchmark.jl
1.114797 seconds (535.51 k allocations: 26.343 MB, 4.02% gc time)
$ node benchmark.js
7.454sec
まとめ
-
julia(1.1秒) > crystal(3.9秒) > nodejs(7.4秒) という順番になった
-
crystal実装、ちゃんと最適化したらjulia越えられるのか気になる
-
ハロウィンみなさん元気でよろしい