Y-Ken Studio

新しもの好きのデータエンジニアが四方山話をお届けします。

mruby版MessagePackを利用して著しい性能向上を果たしたmruby-fluent-logger v0.0.2をリリースしました

mruby-fluent-logger (別名 fluent-logger-mruby) のv0.0.2をリリースしました。
今回の目玉は、シリアライズエンジンの変更です。
これまでのJSONから、suzukazeさんにより移植されたmruby-msgpackへ切り替えることで、パフォーマンスが向上しています。

ベンチマーク

具体的にmruby-jsonとmruby-msgpackの速度の違いとしては約5.8倍とのことです。

次のハッシュのシリアライズとデシリアライズをJSONとmsgpackで10000回繰り返します。
(中略)
計測結果
JSON: passed time 0.543839 sec
MessagePack:passed time 0.092397 sec
計測結果はMessagePackがJSONの約5.8倍の速さとなりました。

より詳細な計測内容については、引用元である次のブログが参考になります。

謝辞

mruby-msgpackの実装と、このmruby-fluent-loggerへpull-reqをして下さいました、suzukazeさん、ありがとうございます。

今後の構想

どこかしらで利用される事例ができることを期待しています。
その他には、http以外でも次のように投げられるようになると、より使いやすくなると思います。

  • unix socket対応
  • in_forward (port 24224) 対応

気ままにメンテナンスしておりますので、是非pull-reqをお待ちしております。

追記

Gnosyに記事が拾われておりました。 http://gunosy.com/g/ggwG5