A 2-3% timing difference probably isn't reliably repeatable in real code.

My timing tests were interleaved as I swapped in various algorithms and recompiled and the time differences were consistent. I gave ranges not averages to give a feel for the "experimental error".


I'm not sure, though, if this negates your point, Beman. Something that gives a 2-3% speedup for one Boost user might not be worth any level of obfuscation unless we can prove it provides a similar speedup for other Boost uses.

Just to avoid confusion for people joining this thread halfway, the 2-3% speedup was in my code; I wasn't proposing obfuscating any boost library.


My point was that I got this speed-up by overriding operator new/delete with one-liners in just a single class (of course I chose the class I new from profiling was making heaviest use of new/delete):

void* operator new(std::size_t sz){
  return boost::detail::quick_allocator<T>::alloc(sz);
  }

void operator delete(void *p,std::size_t sz){
  boost::detail::quick_allocator<T>::dealloc(p,sz);
  }

where T is the name of my class. That is so easy it is practically free, like using -O3 instead of -O2.


> In our project, a 3% speed increase is considered a cause for celebration. > ....
- sped up JavaScript iBench by 70% by using a better sort algorithm and reducing the number of UString allocations

How did you celebrate that one then? :-)


Darren


_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

Reply via email to