読者です 読者をやめる 読者になる 読者になる

jiffy と mochijson2 と simplejson のベンチマークを取ってみた

erlang json

MBA なのでスペックがしょぼいです。( Core2Duo 1.6 / 4G / SSD 128 )

Erlang
R15B
Python
2.7.2

追記

  • 2012-03-19
    • simplejson を 2.4.0 にアップデート
    • tokoroten.json を置き換える

結果

simplejson は C 拡張アリです

encode(decode(data)) を 100 回ほど回してみました

モジュール名 バージョン/ハッシュ マイクロ秒
simplejson 2.4.0 289527
jiffy 12bf41ee61 391444
mochijson2 938d5c8190 6871681

ベンチマークに使ったコード

https://github.com/voluntas/snowflake/tree/feature/json

かなり適当に書いたので、間違っているかも知れません。pull-request 待ってます。

Ruby 版を作りたいので bench.rb な pull-request or fork しての結果待ってます。

追記

色々 pull-request いただきましたので、参考にして頂ければ。ありがたいです。

jiffy

https://github.com/davisp/jiffy

NIF で書かれた JSON ライブラリ。Wooga (Ruby + Erlang の会社) もコレを使っているとか。

mochijson2

https://github.com/mochi/mochiweb

mochiweb に含まれているモジュールの一つです。
シンプルな短いヤツならコレで十分かなと、基本的に並列で処理されているはずなので。

simplejson

https://github.com/simplejson/simplejson

Python の JSON ライブラリと言えばこれ。ちなみに mochijson2 と作者が一緒です。

考察

Erlang おせー。simplejson はえー。
JSON データなので MessagePack と比較は難しいですが、
Python 側がボトルネックになる事は無さそうということが良くわかりました。

参考