Comment 3 for bug 1753675

Revision history for this message
Andrew Johnson (anj) wrote :

I suspect your understanding may be a little off. My knowledge of the history is that the scalar versions were added later, which is why they are called "fast" convert — this was an attempt to improve the performance of links that only transport a scalar, and comparing the speeds of the convert routines by themselves the "fast" ones do seem to be about 20-30% faster. However I suspect that the extra overhead of working out which one to call probably removes most of the speed advantage that the fast routines have. I'm still measuring the effect of doing that, but it does seem to slow down dbGet() a little.

Please note that the older dbConvert.h routines have a different API for put vs. get, and there the convert functions *do* know which side's metadata they have access to. The put routines always provide the destination as a dbAddr, while the get routines always provide the source as a dbAddr. This matches the APIs of dbPut() and dbGet().

I don't think providing a dbAddr for both source and destination would be a good idea, it's actually a relatively heavy-weight object.

Still working on this...