On Feb 27, 2007, at 10:43 PM, David Balmain wrote:

Truncated mean time to index 1000 Reuters news stories:

    Before: 1.83 seconds
    After:  1.82 seconds

Glad it didn't take me very long to implement.  :)

Thanks for posting this. It'll probably save me a lot of time (or
worry) in the future. ;-)

It's cake to flip a switch in boilerplater.pl and turn all the final methods back into virtual methods, if you ever get the itch.

To put those numbers in perspective, I recently knocked 30% off of KinoSearch's indexing benchmark by refactoring Token sorting to minimize malloc calls and hashset building.

I think boilerplater.pl is pretty much feature-complete at this point. There's nothing more on my to-do list for it, and it seems to be working fine. When I can afford to take a break from KS work, I'll do a big s/kino_/lucy_/g on it and we can start playing with it here.

I had to change the syntax a bit, though. Automatically generating the the method names wasn't working well, because it couldn't detect where I wanted CamelCase in the method name. For instance, I wanted Folder_Open_InStream, but it gave me Folder_Open_Instream (lower case s in Instream). So now, each method invoker is spec'd manually. The header files got a little uglier, but the C files are perfect.

http://www.rectangular.com/svn/kinosearch/trunk/c_src/KinoSearch/ Search/TopDocCollector.h http://www.rectangular.com/svn/kinosearch/trunk/c_src/KinoSearch/ Search/TopDocCollector.c

Oh yeah... I also implemented dynamic subclassing.  :)

Marvin Humphrey
Rectangular Research
http://www.rectangular.com/


Reply via email to