Boost logo

Boost Users :

From: Tobias Schwinger (tschwinger_at_[hidden])
Date: 2008-01-05 12:50:45


Vladimir Prus wrote:
> Frank Mori Hess wrote:
>
>> On Thursday 03 January 2008 12:43, j.c. wrote:
>>> So the consensus here is to not use BOOST signals? I could implement
>> Noone said that.
>>
>>> the calls another way that would not break when the application
>>> becomes multithreaded, which is likely to happen at some point. I
>>> would have to implement some sort of queue and lookup an id and then
>>> via a pointer trigger the target function along with parameter. Also I
>>> noticed that BOOST signals added a cool 300KB to my static lib,
>>> strippable to 200KB, which I am not too happy about since this lib's
>>> intentions was small size.
>
> Ouch! Out of curiosity, does compiling with size optimization or
> disabled inlining has noticable effect on this? In general, it seems
> like code size was never much of concern inside boost.

Just guessing -- but it's most likely to be RTTI from polymorphic
template instantiations:

     class A {
         // ...
         virtual ~A() { }
     };

     template< typename T > class B : public A {
         // implements abstract A
     }

     // ... instantate many B's

Now the compiler has to generate RTTI that can't be stripped for every
instantiation of the 'B' template, because 'typeid(T)' is guaranteed to
return a descriptions of the most derived class in client code of the
library.

The bloat effect has been observed to be especially severe with GCC.

Regards,
Tobias


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net