At 06:23 AM 1/30/2003, Peter Dimov wrote: >From: "David B. Held" <[EMAIL PROTECTED]> >> "Philippe A. Bouchard" <[EMAIL PROTECTED]> wrote in message >> b19hhg$i2m$[EMAIL PROTECTED]">news:b19hhg$i2m$[EMAIL PROTECTED]... >> > [...] >> > list shifted_ptr<T> took 7.1966276647 seconds to reconstruct 2000 >times. >> > [...] >> > list shared_ptr<T> took 14.0157271000 seconds to reconstruct 2000 times. >> >> Looks like your lead is getting eroded by the day. ;) And that's just >> with a quick hack. You better be worried about a serious small >> object allocator. > >To be fair, a factor of two improvement cannot just be shrugged off. But one >point to keep in mind is that > >shared_ptr<X> px(new X); > >performs two allocations. We can optimize the count allocation until we're >blue in the face but in a real project the whole expression will probably >remain a bottleneck; so it's likely that X will acquire a class-specific >operator new. And a X with a class-specific new can no longer be used with >shifted_ptr.
I read a paper yesterday from the latest OOPSLA proceedings that argued that a class-specific new is almost never a win compared to a high-quality general purpose allocator like LEA. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost