[Scons-dev] SCons-like build system

Kenny, Jason L jason.l.kenny at intel.com
Tue Feb 3 09:21:56 EST 2015


Where is the benchmark code. I wonder how hard it is to get this to use the features in Parts to see how it effects the system.

Jason

-----Original Message-----
From: Scons-dev [mailto:scons-dev-bounces at scons.org] On Behalf Of Dirk Bächle
Sent: Sunday, February 1, 2015 12:54 PM
To: scons-dev at scons.org
Subject: Re: [Scons-dev] SCons-like build system

Hi all,

On 27.01.2015 17:26, Kenny, Jason L wrote:
> I think it is that Parts tries to use DB data smarter than SCons does. 
> For me the understanding of the logic needed to validate that something is good or bad with MD5 I believe is the item that I had to learned from SCons.
> [...]
>

during the last few days I ran and profiled SCons for the 100k files benchmark example, created by genbench.py from Aqualid's "example/benchmark" folder. All the single runs were performed on a COTS quad-core machine (4*AMD A8-6600K @ 1.9GHz) with 8GB RAM.

For Aqualid 0.5.2 I get:

   Clean build (-j 1)   = 12:37:53
   Clean build (-j 4)   =  4:41:33
   Update (w/o changes) =  0:00:59.77

For the standard SCons 2.3.4:

   Clean build (-j 1)   = 14:09:54
   Clean build (-j 4)   =  5:38:46
   Update (w/o changes) =  0:17:20.25
   Update (max-drift=1) =  0:17:00.07

For the experimental SCons version (switched Node class to slots + stubprocess.py wrapper), including some hacks to exploit the uniform structure of the benchmark sources, I could reduce this down to:

   Clean build (-j 1)   = 10:58:50
   Clean build (-j 4)   =  3:44:20
   Update (w/o changes) =  0:08:38.38
   Update (max-drift=1) =  0:04:27.77

The much higher times for Aqualid in the parallel build (-j 4) come from the processing order, which queues all library archiving to the end of the build. This sent my machine thrashing/swapping, even though it has 8GB RAM...SCons is better balanced in this case, it creates each lib as soon as all its sources are compiled.

I also ran a "clean/remove target" on a smaller project with 10k files each:

   Aqualid  (aql --clean) =  3:51.93
   SCons    (scons -c)    =  0:19.94

, this looks like a bug in Aqualid to me.


Find attached the memory consumption for a "parallel clean build" (-j 4) run with SCons...

Best regards,

Dirk



More information about the Scons-dev mailing list