[groonga-dev,03238] Re: groonga-command-parser for jruby.

Back to archive index

Hiroyuki Sato hiroy****@gmail*****
2015年 5月 16日 (土) 19:42:54 JST


須藤さん

佐藤です。
ご連絡をありがとうございます。

簡易ベンチをとってみました。
https://gist.github.com/hiroyuki-sato/4041c5cc561c35d13f8a

結論をいうと遅くて置き換えない方が良さそうです。

私のやりたいことjavaでもできるんですが、groongaのjavaクライアント
はどこかにあれば教えて下さい。

考えていることが実現できたら公開をしたいと思います。



2015年5月15日 23:10 Kouhei Sutou <kou****@clear*****>:
> 須藤です。
>
> In <CA+Tq-RoWWgN_onKT+****@mail*****>
>   "[groonga-dev,03230] groonga-command-parser for jruby." on Thu, 14 May 2015 21:09:22 +0900,
>   Hiroyuki Sato <hiroy****@gmail*****> wrote:
>
>> 諸般の事情で、groonga-clientをjrubyで使いたいと思っています。
>> 残念ながら、groonga-comand-parserはjruby未対応のyajl-rubyに依存しています。
>>
>> 代わりにjson-streamをjrubyの時だけ使ったらどうだろうということを考えました。
>> おそらくjson-streamよりyajl-rubyの方がパースが速いためです
>>
>> だいぶ汚いのですが、yajlをjson-streamに置き換えて動くようにしてみました。
>> rake testもとおりました。
>>
>> 課題は次の二つです。
>> ・gemspecで、crubyの時は、yajl-rubyを、jrubyの時はjson-steamを入れるようにしたい。
>>  単純にパースする時は、JSON.parseを利用する。エンコードはto_jsonを使う。
>> ・crubyの時は、yajlを、jrubyの時はjson-streamを使うようなパーサクラスに変更したい。
>>
>> gemスペックはRUBY_PLATFORM =~ /java/ とかやれば上手くいくと思ったのですがうまくできませんでした
>>
>> ということを下手な英語で書きました。どなたか良い案がございましたらアドバイスをください。
>>
>> https://github.com/groonga/groonga-command-parser/issues/1
>
> yajl-rubyの場合とjson-streamの場合でベンチマークをとってもら
> えますか?もし、json-streamが十分速かったらjson-streamにしよ
> うと思います。
>
> 複数のJSONパーサーをサポートしてメンテナンスし続けるのはツラ
> そうなので1つにしたいです。。。
>
> Groongaのコマンドは全部がJSONではなく、loadのためにに途中だ
> けJSONがでてくる、という構造になっています。それに対応するた
> めにゴニョゴニョやっているところがあるんですが、json-stream
> を使うことでそこをいい感じにできるならjson-streamの方が速く
> なる可能性もあるんじゃないかと思っています。
>
> 具体的には、json-streamに入力を投げ込むとJSONの終わりまでき
> たらそこで処理を終了して、余ったテキストを取り出せるようになっ
> ていると速くなるかもしれないと思っています。
>
> https://github.com/groonga/groonga-command-parser/blob/master/lib/groonga/command/parser.rb#L219
>
>           json, separator, rest =****@buffe*****(/[\]},]/)
>
> あたりのコードがまるっとなくなるイメージです。
>
>
> --
> 須藤 功平 <kou****@clear*****>
> 株式会社クリアコード <http://www.clear-code.com/>
>
> Groongaベースの全文検索システムを総合サポート:
>   http://groonga.org/ja/support/
> パッチ採用 - プログラミングが楽しい人向けの採用プロセス:
>   http://www.clear-code.com/recruitment/
> プログラミングが好きな学生のための勉強会:
>   http://www.seplus.jp/sezemi/
>
> _______________________________________________
> groonga-dev mailing list
> groon****@lists*****
> http://lists.osdn.me/mailman/listinfo/groonga-dev



-- 
Hiroyuki Sato



groonga-dev メーリングリストの案内
Back to archive index