Boost logo

Boost-Build :

From: Pedro Ferreira (pedro.ferreira_at_[hidden])
Date: 2003-10-13 09:55:06


Hi all,

I'm using BBv2 on Windows XP.
I have a project with a couple of hundreds of cpp files and bjam is taking an enormous amount of time just to start building it.
To try and figure out why, I've set up a simple evaluation script which generates empty cpp files and adds them to a Jamfile with a lib target.

Running "bjam -d -d+10" renders this:

# files 1 Elapsed: 0.451 seconds
# files 5 Elapsed: 0.621 seconds
# files 10 Elapsed: 0.811 seconds
# files 50 Elapsed: 2.684 seconds
# files 100 Elapsed: 5.718 seconds
# files 200 Elapsed: 11.517 seconds
# files 300 Elapsed: 17.435 seconds
# files 500 Elapsed: 47.418 seconds
# files 1000 Elapsed: 154.132 seconds

Does anybody have an idea why the behaviour seems to become exponential after 300 targets?
Including 100 header files in each cpp file increased the time by 10-20%.

I found it odd that the highest net time is caused by numbers.increment:
files gross net # entries name

1: 0 0 217 numbers.increment
500: 17334 17004 19182 numbers.increment
1000: 70299 69958 38182 numbers.increment

Any pointers on how to optimize this would be appreciated.

Regards,

Pedro
 ------=_NextPart_000_005F_01C391A2.5F347A30 Content-Type: text/html;
charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.2733.1800" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face="Courier New" size=2>Hi all,</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>I'm using BBv2 on Windows XP.</FONT></DIV>
<DIV><FONT face="Courier New" size=2>I have a project with a couple of hundreds
of cpp files and bjam is taking an enormous amount of time just to start
building it.</FONT></DIV>
<DIV><FONT face="Courier New" size=2>To try and figure out why, I've set up a
simple evaluation script which generates empty cpp files and adds them to a
Jamfile with a lib target. </FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Running "bjam -d -d+10" renders
this:</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT><FONT face="Courier New"
size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2># files&nbsp;&nbsp;&nbsp; 1
Elapsed:&nbsp;&nbsp; 0.451 seconds<BR># files&nbsp;&nbsp;&nbsp; 5
Elapsed:&nbsp;&nbsp; 0.621 seconds<BR># files&nbsp;&nbsp; 10
Elapsed:&nbsp;&nbsp; 0.811 seconds<BR># files&nbsp;&nbsp; 50
Elapsed:&nbsp;&nbsp; 2.684 seconds<BR># files&nbsp; 100 Elapsed:&nbsp;&nbsp;
5.718 seconds<BR># files&nbsp; 200 Elapsed:&nbsp; 11.517 seconds<BR>#
files&nbsp; 300 Elapsed:&nbsp; 17.435 seconds<BR># files&nbsp; 500
Elapsed:&nbsp; 47.418 seconds</FONT></DIV>
<DIV><FONT face="Courier New" size=2># files 1000 Elapsed: 154.132
seconds</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Does anybody have an idea why the behaviour
seems to become exponential after 300 targets?</FONT></DIV>
<DIV><FONT face="Courier New" size=2>Including 100 header files in eachcpp file
increased the time by 10-20%.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>I found it odd that the highest net time is
caused by numbers.increment:</FONT></DIV>
<DIV><FONT face="Courier New" size=2>
<P>files&nbsp;gross&nbsp;&nbsp; net # entries name</P></FONT></DIV>
<DIV><FONT face="Courier New" size=2>&nbsp;&nbsp; 1:&nbsp;&nbsp;&nbsp;&nbsp;
0&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp; 217 numbers.increment</FONT></DIV>
<DIV><FONT face="Courier New" size=2>&nbsp;500: 17334 17004 19182
numbers.increment</FONT></DIV>
<DIV><FONT face="Courier New" size=2>1000: 70299 69958 38182
numbers.increment</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Any pointers on how to optimize this would
be appreciated.</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Regards,</FONT></DIV>
<DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
<DIV><FONT face="Courier New" size=2>Pedro</FONT></DIV></BODY></HTML>
 ------=_NextPart_000_005F_01C391A2.5F347A30--


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