Hi Luis Wow, sounds like you've been working hard! Would love to see a patch for the C bindings... but of course, only when you have the time.
Cheers -- Pat On 08/09/2012, at 3:32 PM, Luis Lavena wrote: > On Mon, Aug 6, 2012 at 1:56 PM, Pat Allan <[email protected]> wrote: >> Hi Luis >> >> It wouldn't be too tricky to use Riddle to query Sphinx directly - AR models >> are only queried for the sake of string facets (and that's something I'm >> looking at working around when I implement facets in my rewrite of Thinking >> Sphinx). >> >> Feel free to give it a shot, but if you get stuck let me know and I'll piece >> some code together to help. >> > > Hello Pat, > > I found that querying sphinx directly still give me a fast response, > but was Ruby processing of the response the main issue. > > After isolating the query I wanted, I wrote some benchmarks and > started to profile Riddle responses and noticed 14K calls to > Riddle::Client::Response#next_int which took 26% (0.32 sec) of the > time of every call. > > That combined with Riddle::Client#attribute_from_type who took another > 0.58 secs, combined later with iteration over attributes and placing > those results into an array of hashes resulted in the poor performance > I was experiencing. > > Decided to took a simple approach and rewrote Riddle::Client::Response > class entirely in C, no longer using String#pack/unpack to read bytes > from the string but instead looked at libsphinxclient for unpacking > these values. > > After doing that I went from 0.8 secs per query to 0.3 secs, still > having Riddle::Client#attribute_from_type and Array#each, Hash#[] and > Hash#[]= taking a lot of time parsing such responses (inside > Riddle::Client#run command) > > I'm still testing this out (not on production yet) but once we have it > will look for approval to open-source it. > > Regards, > -- > Luis Lavena > AREA 17 > - > Perfection in design is achieved not when there is nothing more to add, > but rather when there is nothing more to take away. > Antoine de Saint-Exupéry > > -- > You received this message because you are subscribed to the Google Groups > "Thinking Sphinx" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]. > For more options, visit this group at > http://groups.google.com/group/thinking-sphinx?hl=en. > -- You received this message because you are subscribed to the Google Groups "Thinking Sphinx" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/thinking-sphinx?hl=en.
