|
Boost : |
From: Felipe Magno de Almeida (felipe.m.almeida_at_[hidden])
Date: 2007-09-30 20:59:10
On 9/30/07, Emil Dotchevski <emil_at_[hidden]> wrote:
>
[snip]
> In the particular case of Boost Exception, any speed overhead it adds
> should be compared to the overhead of throwing an exception. You have
> stack unwinding and destructor calls, etc. anyway. I don't think that
> optimizing Boost Exception for speed makes any sense.
I agree with this.
> Optimizing the memory allocations made by Boost Exception when info is
> added to exception objects can not be dismissed as easily, but I would
> not call those allocations unnecessary. :)
But I believe that we should be able to allow not making any heap
allocation within some measure. Using a custom pre-allocated heap
should make *some* information to be held without any allocation.
Types that use heap on construction/copy-construction we don't have
much choice anyway.
It could be disabled/enabled and the size could be customized.
> Consider that all of these allocations happen immediately before or
> during stack unwinding, and at that time the rest of the code doesn't
> usually allocate memory. When the exception is finally handled, all
> this memory is reclaimed, and assuming that no other memory was
> allocated during the stack unwinding, we don't get fragmentation
> either.
My biggest concern is bad_alloc being thrown and the exception being
replaced. It might not be as bad for most cases, but may be critical
in others.
[snip]
> Emil Dotchevski
-- Felipe Magno de Almeida
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk