
Hello, The code with the various suggested fixes and all references tests is now in the sandbox at svn.boost.org/svn/boost/monotonic. On VS2008, full optimisation: Incrementing ord = 2.99 ps per iteration Incrementing ord = 2.99 ps per iteration STD: Incrementing ord = 3.22 ps per iteration STD: Incrementing ord = 3.19 ps per iteration monotonic: 0.001 std: 0.016 monotonic: 0.014 std: 0.955 On GCC 4.3.3, -O4: Incrementing ord = 2.6 ps per iteration Incrementing ord = 2.7 ps per iteration STD: Incrementing ord = 3.1 ps per iteration STD: Incrementing ord = 2.7 ps per iteration monotonic: 0 std: 0 monotonic: 0.02 std: 0.02 Obviously, I have a lot of testing to do to show anything real (other than that GCC is better at optimisation than VS in these cases). However, none of the results are discouraging; there is no case where monotonic is slower and only cases where it is faster. However, I am the first to admit that I really need to provide far better and more exhaustive testing. Now that it is in the sandbox, that will be easier to do. Thanks and Regards, Christian. On Fri, Jun 12, 2009 at 7:36 PM, Christian Schladetsch < christian.schladetsch@gmail.com> wrote:
Hi Scott,
Thanks for that; adding operator!= for monotonic::allocator seems to've fixed it. I am in the process of incorporating all the suggested changes into the sandbox now, and testing across more compilers.
Cheers, Christian.
On Fri, Jun 12, 2009 at 7:05 PM, Scott McMurray <me22.ca+boost@gmail.com>wrote:
2009/6/11 Christian Schladetsch <christian.schladetsch@gmail.com>:
template<typename C> void test_loop_monotonic() { boost::monotonic::inline_storage<100000> storage; boost::monotonic::vector<Foo<C> > vec(storage); Foo<C> orig = { 'A', 65 }; vec.assign(ELEM_COUNT, orig); }
This doesn't even compile for me (GCC 4.3.3), apparently because it can't swap the allocators. _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost