QiのJSONパーサが遅かった話

https://github.com/wx257osn2/json_parser_test これについてのお話。
0

ふとmattnさんの記事を思い出し、Qiはどうなのかと気になり
闇の魔法陣のJSONパーサを引っ張ってくることにする

I @wx257osn2

あぁ、こっちをincludeしとけばよかったのか

2013-03-01 00:35:11
I @wx257osn2

やばい、エラーメッセージがめっちゃ減ったw

2013-03-01 00:35:24

和気藹々とQiをいじる

I @wx257osn2

いやー、しかしqiはほんとにコンパイル時間伸びるなぁ…

2013-03-01 00:42:27
I @wx257osn2

Boost 1.53.0入れてる

2013-03-01 00:56:35

長いので中略
紆余曲折あり(闇の魔法陣の実装だと日本語が読めなかったのでデータをエンコードした、とか)動かせる段階に至る

I @wx257osn2

あれー、なんかqiだけやけに遅いな…

2013-03-01 03:16:03
I @wx257osn2

作り方の問題もあるんだろうけど、ひょっとしてqiのパーサって遅い?

2013-03-01 03:26:00
I @wx257osn2

速度の差が深刻なんだよなぁ

2013-03-01 03:26:34
I @wx257osn2

なんでこんなにqiパーサの速度遅いんだろ

2013-03-01 13:48:18
I @wx257osn2

なんとなく、メモリ確保周りでやらかしてるんじゃないかなとは思うんだけど

2013-03-01 13:49:05
I @wx257osn2

きっとたぶんおそらくvariantのメモリアロケーションがへまってるんだと信じてるんだけどとりあえず結果としてqiが遅い

2013-03-01 14:02:51

ここで、「Variantが遅いのでは」と考え他の実装を探す。

I @wx257osn2

Boost.Any実装見つけたけどany_castで落ちるので諦めた

2013-03-01 16:21:36

正確には、見つけたパーサの実装が\uすら読めないものだったためパースに失敗してた。
そのため、闇の魔法陣のJSONパーサのデータ部分をVariantからAnyに変更。
結果、速度ほぼ変わらず。

Totto8492 @Totto8492

Qiってそんな遅かったっけと思ったけど今Boost入れてなか

2013-03-01 13:58:58
I @wx257osn2

@Totto8492 とりあえず(そちらがお時間あったら)ファイル投げていいですか?(

2013-03-01 14:08:53
Totto8492 @Totto8492

@wx257osn2 ちょっと忙しかったり暇になったりが交互にきてるので、もうしばらくしたらこちらからリプ送りますw

2013-03-01 14:13:34
Totto8492 @Totto8492

@wx257osn2 Skypeサインインしましたので、そちらもお時間あるときにドゾ

2013-03-01 14:27:56

Tottoさんと話し、「とりあえずGithubにでも投げてTLにいる人に聞こう」ということに。

I @wx257osn2

「C++わかります」な方、どなたか教えて下さい https://t.co/diwFzLuAth

2013-03-01 18:08:41