|
Boost : |
From: David Abrahams (dave_at_[hidden])
Date: 2003-11-19 19:00:25
Rene Rivera <grafik.list_at_[hidden]> writes:
> [2003-11-19] Vladimir Prus wrote:
>
>>Stefan Seefeld wrote:
>>
>>> Indeed, tracking source dependencies is not in the scope of qmtest.
>>> However, since you can 'qmtest run my.test.in.a suite', it's easy enough
>>> to hook it it up with everyone's preferred build system. (I wrote my
>>> test database implementation to integrate with the make/autoconf based
>>> build system, and I'm sure doing a similar thing for bjam is equally
>>> simple.)
>>
>>You know, there's one problem. If you run 'bjam' once for each test, it can
>>be slow in itself. At least for me, running 'bjam' in status directory
>>takes about 40 seconds, no matter if I request specific target -- with
>>Boost.Build v1. V2 might behave better, but still... I'm not sure if that
>>won't be too slow.
>
> I know, from experience with my own project, where that slowness comes from.
> A very large portion of the "startup" slowness comes from the numerous
> memory allocations bjam does. The reason it does is because of the way it
> allocates once only read only strings, and we allocate many, many strings. I
> tried making the strings garbage collect once, but only succeded in getting
> crashes from using deallocated memory :-(
We maybe oughta try throwing the Boehm collector at it. But remember
that it also interns all strings, so any strings that are duplicated
get shared. I'm not sure how that would balance out.
-- Dave Abrahams Boost Consulting www.boost-consulting.com
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk