Good results, Dirk.

It's definitely worth to use posix_spawn.
When do you plan to integrate the experimental version into the mainline?

/> .. including some hacks to exploit the uniform structure of the benchmark sources//../
What kind of hacks?
How do they affect performance?

I see great improvement in "Update (w/o changes)" build (up to 4 times faster), posix_spawn couldn't help here.


Thank you for testing the clean targets case.
I haven't tested this case on large projects.

Best regards,
Constantine.

On 02/01/15 21:53, Dirk Bächle wrote:
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



_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to