From: Andreas Fredriksson (deplinenoise_at_[hidden])
Date: 2005-10-06 07:02:46
On 10/5/05, David Abrahams <dave_at_[hidden]> wrote:
> I would do some very careful measurement before drawing conclusions.
> Most people draw the wrong conclusions about why their build system
> seems slow. There's a _long_ history of that phenomenon.
You seem to be drawing the conclusion that I haven't measured and
timed the various parts of a build run. :-)
I've spent quite some time trying to remove build system overhead; one
of the best ways is to move header paths out of SCons' CPPPATH into
CXXFLAGS. This keeps the dependency scanner from seeing them but it
also breaks the overall integrity of the system so it's only useful
when there are many subsystems that rarely change (our 3rd party
libraries are set up this way).
During a no-act run about 1 second is spent setting up all the
targets, dependencies and whatnot. This is my own code and I'm OK with
it taking a second for now.
SCons then spends between 8 and 9 seconds processing these targets
(without taking any action, since everything is already built).
Changing between MD5 signatures and timestamps makes no difference in
performance (except on Windows where timestamps are a little quicker
for us), so disk I/O is not the bottleneck.
It all seems about reducing the dependency tree depth and overall
size, which is possible to some degree but gets harder and harder as a
-- "Those who live by the sword get shot by those who don't."
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