https://github.com/wx257osn2/json_parser_test
JSONパーサの速度測ってみたらqiがやたら遅くて謎
https://github.com/wx257osn2/json_parser_test
Last synced: 3 months ago
JSON representation
JSONパーサの速度測ってみたらqiがやたら遅くて謎
- Host: GitHub
- URL: https://github.com/wx257osn2/json_parser_test
- Owner: wx257osn2
- Created: 2013-03-01T09:05:53.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2013-03-07T10:11:28.000Z (about 12 years ago)
- Last Synced: 2025-01-14T12:16:39.528Z (5 months ago)
- Language: C
- Size: 223 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme
Awesome Lists containing this project
README
追記あり(一番下)
元ネタ : 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