On Dec 18, 2006, at 9:56 PM, David Balmain wrote:

I think the difference will be very small indeed. But as you say,
since the function calls are macrofied it really is easy to switch out
the function call with a macro. The question is, which way to go with
first. I think we should have it consistent across the board and leave
this optimization for later. But that is my personal preference and it
certainly isn't a dealbreaker for me.

The way I've got things set up right now, all methods are virtual, so two lookups are required to locate the function address. However, with another 50 lines of code it's possible to implement "final" methods, which would be aliases for functions.

True, the i/o methods, particularly the vint i/o methods, are the
major bottleneck. I spent a lot of time optimizing write_vint and
read_vint. They're ugly but they got me a massive 20% performance
gain. Also, adding a skip_vints method instead of just using read_vint
in a loop like Lucene gave me another 10%.

Mmmm, very interesting... I just spelunked your implementation. Good stuff, I'm sure we'll want to use that.

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


Reply via email to