473,513 Members | 2,291 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

SCons build tool speed

ted
How does the speed of the Scons build tool compare with Ant? Right now with
out Ant builds take around an hour. Hoping to speed that up.

TIA,
Ted
Jul 18 '05 #1
8 2569
On Sat, Feb 12, 2005 at 07:16:02PM +0000, ted wrote:
How does the speed of the Scons build tool compare with Ant?


I would recommend asking this question on us***@scons.tigris.org , but my
impressions is that most of the time is probably spent in the compiler. If you
are working on a java project you could try switching from javac to jikes and
that might improve your time, though it has been a while since I used jikes.

Chris
Jul 18 '05 #2
ted wrote:
How does the speed of the Scons build tool compare with Ant? Right now with
out Ant builds take around an hour. Hoping to speed that up.


Don't tools like Scons, Ant, and for that matter "make" just
execute other programs? So that 99% of the time is consumed
external to the Scons, Ant, or make process itself? Why
do you think the speed of the build tool is of any significance
compared to the time for things like compilers and linkers
to execute?

-Peter
Jul 18 '05 #3
Peter Hansen <pe***@engcorp.com> writes:
ted wrote:
How does the speed of the Scons build tool compare with Ant? Right
now with out Ant builds take around an hour. Hoping to speed that up.


Don't tools like Scons, Ant, and for that matter "make" just
execute other programs? So that 99% of the time is consumed
external to the Scons, Ant, or make process itself? Why
do you think the speed of the build tool is of any significance
compared to the time for things like compilers and linkers
to execute?


Actually, these tools do a number of things oter than run other
programs. For instance, they parse input files to construct a build
tree, walk the build tree figuring out what needs to be rebuilt, and
only *then* do they get around to executing those other
programs. Assuming that the work prior to running those other programs
is "neglible" can lead to some truly atrocious build-time behavior. In
fact, one major advantage that ant/scons/jam/etc. have over Make is
that they avoid the defacto standard "recursive make" build
system. See <URL:
http://www.pcug.org.au/~millerp/rmch...cons-harm.html > for
details on that.

<mike
--
Mike Meyer <mw*@mired.org> http://www.mired.org/home/mwm/
Independent WWW/Perforce/FreeBSD/Unix consultant, email for more information.
Jul 18 '05 #4
ted:
How does the speed of the Scons build tool compare with Ant?
Right now with out Ant builds take around an hour. Hoping to
speed that up.


Scons emphasises accuracy over speed and is normally a little slower than
other build tools although still fast enough for most purposes. One cause of
slowness is that it reads the source files, traces include files and
checksums them all rather than relying on file times. There are some things
you can do to speed it up:
http://www.scons.org/cgi-bin/wiki/GoFastButton

Neil
Jul 18 '05 #5
PA

On Feb 13, 2005, at 12:20, Neil Hodgson wrote:
http://www.scons.org/cgi-bin/wiki/GoFastButton


Out of curiosity, why does scons uses MD5 by default? Is that not, er,
somewhat heavy handed for most practical purpose?

Would not some sort of lightweight CRC be "good enough" to start with?

http://samba.anu.edu.au/rsync/tech_report/node3.html

Cheers

--
PA, Onnay Equitursay
http://alt.textdrive.com/

Jul 18 '05 #6
Hi Neil, ted, et al.--
How does the speed of the Scons build tool compare with Ant?
Right now with out Ant builds take around an hour. Hoping to
speed that up.


Scons emphasises accuracy over speed and is normally a little
slower than other build tools although still fast enough for most
purposes. One cause of slowness is that it reads the source files,
traces include files and checksums them all rather than relying
on file times. There are some things you can do to speed it up:
http://www.scons.org/cgi-bin/wiki/GoFastButton


In anticipation of the next release of SCons, we've been doing
a *lot* of work on profiling the performance and eliminating
bottlenecks.

It turns out that scanning the source files and performing the MD5
calculation is not the dominant factor that we've all assumed it is.
There were some other inefficiencies in some of our algorithms that
were much more significant, including some unnecessary disk scans,
recomputing the same dependencies for every target in a list of
targets generated by one command, and repeated just-in-time creation
of some internal objects that could be created just once and cached.

That said, SCons will never be as fast as Make, because it *is*
doing more for you under the covers. Although the next version
won't necessarily speed up every configuration (the bottlenecks
are extremely configuration dependent), it should be a significant
improvement for many configurations out there.

--SK

Jul 18 '05 #7
Hi Peter--
How does the speed of the Scons build tool compare with
Ant? Right now with out Ant builds take around an hour. Hoping
to speed that up.


Don't tools like Scons, Ant, and for that matter "make" just
execute other programs? So that 99% of the time is consumed
external to the Scons, Ant, or make process itself? Why
do you think the speed of the build tool is of any significance
compared to the time for things like compilers and linkers
to execute?


You're right that build times are dominated by the external commands
when rebuilds occur. If nothing needs to be rebuilt, though, the
wall-clock time is obviously dominated by how long it takes for
the build tool to decide that. A build tool that doesn't decide
whether or not targets are up-to-date *and* dispatch the commnds
to rebuild them reasonably quickly and efficiently doesn't do a
good job of serving its users.

--SK

Jul 18 '05 #8
kn****@baldmt.com wrote:
You're right that build times are dominated by the external commands
when rebuilds occur. If nothing needs to be rebuilt, though, the
wall-clock time is obviously dominated by how long it takes for
the build tool to decide that. A build tool that doesn't decide
whether or not targets are up-to-date *and* dispatch the commnds
to rebuild them reasonably quickly and efficiently doesn't do a
good job of serving its users.


That answer, combined with Mike's response pointing out
that tools more sophisticated than basic "make" actually
can delve into the source and identify the dependencies,
removes my confusion. Thanks. :)

-Peter
Jul 18 '05 #9

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

3
1616
by: corey.coughlin | last post by:
Hey guys, here's a little question. I'm looking for something like a build system, where I can set up a bunch of jobs with dependencies, and have them run in parallel. Ideally, I'd like a system...
2
1364
by: seberino | last post by:
How does Scons compare to distutils? Should I ignore it or move to it? Chris
4
1581
by: ThunderMusic | last post by:
Hi, Is it possible to speed up the build for ASP.NET 2.0 apps? Each time I click build (or play for debug), it takes forever to build.... Is is possible to speed up this process? it was...
1
3132
by: myheartinamerica | last post by:
Hello, I spent the morning figuring out how to use SWIG on Microsoft Windows. I compiled the example from the SWIG tutorial on http://www.swig.org. The biggest stumbling block was not knowing...
0
1211
by: Steven Knight | last post by:
SCons is a software construction tool (build tool, or make tool) written in Python. It is based on the design which won the Software Carpentry build tool competition in August 2000. Version...
0
1030
by: gamename | last post by:
Hi, I just installed scons on win32 that has cygwin but uses ActiveState python. If I do "import SCons", the lib isn't found. The win32 installer seemed very complete, but the scons lib doesn't...
1
1351
by: anush | last post by:
Can anybody tell how I could go about running python scripts with scons.
1
1270
by: Steven Knight | last post by:
SCons is a software construction tool (build tool, or make tool) written in Python. It is based on the design which won the Software Carpentry build tool competition in August 2000. Version...
32
3764
by: Pedro Borges | last post by:
Hi guys, Is there a way to improve the interpreter startup speed? In my machine (cold startup) python takes 0.330 ms and ruby takes 0.047 ms, after cold boot python takes 0.019 ms and ruby...
0
7269
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7394
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
7559
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
1
7123
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5701
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
4756
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
1611
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
811
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
470
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.