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/
