Boost logo

Boost-Build :

From: Igor Nazarenko (igor.n.nazarenko_at_[hidden])
Date: 2008-04-09 14:01:42


Jurko,

thanks a lot for looking at the patch, and for the time you put in
testing the performance.

>
> I do not think the patch should be applied to the trunk until someone can
> present a better use case/usage description where benefits can be seen &
> reproduced.
>

I think that any project that uses Boost.Build to install a
significant number of executables and shared libraries which all
depend on the same large set of leaf libraries (e.g. Boost) has a
chance to hit the same problem. Boost itself installs mostly libraries
with no dependencies, so the initial list of targets to install never
grows too large.

I'm attaching a synthetic test case that shows the slowdown. To run
the test, unpack the Jamfile to an empty directory and run bjam in
that directory.

This test isolates the problem that I have with using BJAM for my own
project. I produced the list by instrumenting BJAM code to store every
list it sorts into a file. Thus, the strings being sorted in the
synthetic test are exactly the same strings that need to be sorted in
the real project.

My results are as follows:

$ time ./slowjam
starting up
done
...found 7 targets...

real 0m21.839s
user 0m21.817s
sys 0m0.018s

$ time ./fastjam
starting up
done
...found 7 targets...

real 0m0.125s
user 0m0.097s
sys 0m0.024s

Thanks again!

Igor Nazarenko.




Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk