List Info

Thread: Re: OO Design -- performance




Re: OO Design -- performance
user name
2007-02-28 01:45:26
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.co
m/



[1]

about | contact  Other archives ( Real Estate discussion Medical topics )