mruby版MessagePackを利用して著しい性能向上を果たしたmruby-fluent-logger v0.0.2をリリースしました
mruby-fluent-logger (別名 fluent-logger-mruby) のv0.0.2をリリースしました。
今回の目玉は、シリアライズエンジンの変更です。
これまでのJSONから、suzukazeさんにより移植されたmruby-msgpackへ切り替えることで、パフォーマンスが向上しています。
- https://github.com/y-ken/fluent-logger-mruby
- https://github.com/y-ken/fluent-logger-mruby/releases/tag/v0.0.2
ログ収集エンジンFluentdをmrubyから利用するためのロガーパッケージ「mruby-fluent-logger」のmsgpack対応版をリリースしました。jsonに比べて著しい性能向上を果たしています。 https://t.co/kzi9YPBRFI #mruby
— Y.Kentaro (@yoshi_ken) September 1, 2013
ベンチマーク
具体的に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