wx257osn2 / json_parser_test

JSONパーサの速度測ってみたらqiがやたら遅くて謎

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

追記あり(一番下)

元ネタ : http://mattn.kaoriya.net/software/lang/c/20130215160508.htm

なんとなく、「Boost.Spirit.Qiってどうなんだろう」と気になったので
・rapidjson(http://code.google.com/p/rapidjson/)
・picojson(https://github.com/kazuho/picojson)
・闇の魔法陣(https://github.com/kikairoya/black_circle/) のQiによるjsonパーサ
・闇の魔法陣のパーサのデータ部分をBoost.VariantからBoost.Anyに書き換えた奴
  に、元ネタ同様「mattnさんのブログのJSONフィード」を投げてタイトルを列挙、
  速度を比較してみることにしました。

元ネタとの違いは
・ファイルリードは1回だけにしました。IOで速度に影響出るとアレなので。
・標準エラーの捨て方知らないので結果の出力を標準エラーに、
  パース後のデータの列挙を標準出力にしました。
・闇の魔法陣のjsonパーサは(元々Twitter用だからか)日本語が読めなかったので
  勝手に元ネタのデータをエスケープ(\uほげほげ)して使ってます。



で、やってみたんですけど。

g++ test.cpp -std=c++11 -Wall -o test -O3
test > nul
rapidjson score: 2580
picojson score: 6051
qi_any score: 29783
circle score: 29921

なんか、Qiの実装が極端に遅い。
「Qiは速い」と聞いてたのに、他の2つと比べて桁が1つ違う。
これはいったい何が原因なんでしょう?それとも、そもそもQiは遅い?


追記 : 結論としては「闇の魔法陣の実装が(少なくとも今回のデータに対しては)優れていない」
       ということになりました。 http://togetter.com/li/466623

About

JSONパーサの速度測ってみたらqiがやたら遅くて謎


Languages

Language:C 82.4%Language:C++ 17.6%