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