From: Vladimir Prus (ghost_at_[hidden])
Date: 2003-04-03 02:54:47
> And here are the Intel VTune results (see the sources for details):
> Creation Assignment
> struct 13383 27358
> boost::any 3846 331870
> TailoredAny<> 9151 310717
> TailoredAny<Loki::SmallObject> 3855 110022
IOW, TailoredAny behaves much worse on creation in default configuration. It
behaves much better on assignment, in tuned configuration. Hmm..
Looking at your implementation, I still have two questions that I've already
1. Why don't you specify allocator during assignment/creating. Why lift it to
template parameter for any?
2. What happens when you copy any with custom allocator into any with default
allocator. In your code, the allocators are retained on copy. This has a
problem I've described previously --- if any is created in some library, then
it's created with default allocators and there's nothing you can do about
it... which somewhat reduces the gains.
And, BTW, did you run tests on more than one compiler. The small objects
optimization might be implemented in runtime library already.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk