$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
Subject: Re: [boost] [function] function wrapping withnoexceptionsafetyguarantee
From: Daniel Walker (daniel.j.walker_at_[hidden])
Date: 2010-11-06 13:22:43
On Tue, Nov 2, 2010 at 7:20 PM, Jeffrey Lee Hellrung, Jr.
<jhellrung_at_[hidden]> wrote:
> On 11/02/2010 02:50 PM, Daniel Walker wrote:
> [...]
>>
>> Here are the results I got, again, using the build of g++ 4.2 provided
>> by my manufacturer.
>>
>> Data (Release):
>> | function | function (static empty)
>> time/call | 3.54e-07s | 3.51e-07s
>> space/type | 64B | 80B
>>
>> Data (Debug):
>> | function | function (static empty)
>> time/call | 2.05e-06s | 2.04e-06s
>> space/type | 64B | 80B
>>
>> You can see that removing the empty check from boost::function yields
>> about a 1% improvement in time per call to boost::signal. The
>> increased space per type overhead is the same as before: 16B.
>
> [...]
>
> [Butting in after only vaguely following this thread...]
>
> Would it also be appropriate to measure the "space/call", in addition to
> "time/call" and "space/type"? Or is there no difference, or had this been
> addressed already?
Well, a call to boost::function does not cost any additional space.
However, there is a space/object cost, which the other benchmark does
measure. The space overhead per boost::function object is constant. On
my machine it's 32B for both of the empty state schemes.
Daniel Walker