$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [Block Pointer] benchmark
From: Phil Endecott (spam_from_boost_dev_at_[hidden])
Date: 2011-05-25 19:15:08
Phil Bouchard <philippe_at_[hidden]> wrote:
> On 5/25/2011 3:27 PM, Nevin Liber wrote:
>>
>> You have yet to explain why your make_auto is so much slower than new
>> directly. It just isn't that expensive to copy one pointer and zero out
>> another. I can't imagine what else your code can possibly be doing. I
>> can't imagine how that can be more, let alone significantly more expensive
>> than a heap allocation. Enlighten me.
>
> Well if you have a direct assignment coming from operator new then the
> pointer can be transferred directly into a register. If you have
> temporary r-values to copy it into then the transfer will be done from
> one memory location to another, but it won't be a fast as a
> register-to-register transfer.
That effect should be immeasurably small, or eliminated entirely by the compiler.
I think you had better post your benchmark code. There must surely be
something else going on here.
Phil.