|
Boost : |
Subject: Re: [boost] [Block Pointer] benchmark
From: Emil Dotchevski (emildotchevski_at_[hidden])
Date: 2011-05-24 19:59:25
On Tue, May 24, 2011 at 4:52 PM, Phil Bouchard <philippe_at_[hidden]> wrote:
> On 5/24/2011 4:07 PM, Nevin Liber wrote:
>>
>> Your claim is " It is a fast as the popular smart pointer *
>> boost::shared_ptr<T>*". Yet, in single-threaded code and shared_ptr using
>> new instead of make_shared, block_ptr still takes 3.3x as long as
>> shared_ptr.
>>
>> That is *a lot* of overhead...
>
> I just tested it using make_shared & make_block and I get:
> make:
> auto_ptr: 11109841 ns
> shared_ptr: 21215277 ns
> block_ptr: 143637475 ns
>
> new:
> auto_ptr 4583447 ns
> shared_ptr: 10675000 ns
> block_ptr: 67152785 ns
>
> FYI make_shared is slower than new because of the temporary it creates. If
> people what speed they should stick to operator new in all cases.
In my experience any assumptions about speed do more harm than good.
It's probably best to pick the semantics you want (do you want the
control block allocated with the object or not), and only worry about
speed when it is known to be a problem.
Emil Dotchevski
Reverge Studios, Inc.
http://www.revergestudios.com/reblog/index.php?n=ReCode
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk