LoginSignup
2
2

More than 5 years have passed since last update.

TinySegmenterをCrystalで書いてみた。雑だけど。

Posted at

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越えられるのか気になる

  • ハロウィンみなさん元気でよろしい

2
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2