[Scons-users] Performance of version 2.5.0 vs 2.3.0 on Windows host dropped significantly

hmnews at proconx.com hmnews at proconx.com
Sun Aug 7 21:23:31 EDT 2016


Hi all,

We just updated to Scons 2.5.0 after using happily 2.3.0 for years.

Sadly we found performance to have dropped significantly and I wonder 
what the contributing factor could be.

Platform: Windows 10
Python: 2.7.12 64-bit

Calling scons 2.3.0 on our benchmark project with 161 build targets 
takes 2.4s to figure out that project is in compiled state and nothing 
needs to be build. This is a reasonable time for the size of the project.

benchmark> scons-2.3.0 --debug=time
-------------------------------------------------------------------------------
Memory: Program 91580 bytes (8.7%)      Data 43256 bytes (33.0%)
Command execution time: build\stm32f4disco\firmware.size: 0.015000 seconds
scons: `build\stm32f4disco\firmware.hex' is up to date.
Total build time: 2.360000 seconds
Total SConscript file execution time: 0.547000 seconds
Total SCons execution time: 1.798000 seconds
Total command execution time: 0.015000 seconds

However with 2.5.0 execution time blows out to 11.8s, more than 4 times 
longer!!!

benchmark> scons-2.5.0 --debug=time
-------------------------------------------------------------------------------
Memory: Program 91580 bytes (8.7%)      Data 43256 bytes (33.0%)
Command execution time: build\stm32f4disco\firmware.size: 0.032000 seconds
scons: `build\stm32f4disco\firmware.hex' is up to date.
Total build time: 11.798000 seconds
Total SConscript file execution time: 1.468000 seconds
Total SCons execution time: 10.298000 seconds
Total command execution time: 0.032000 seconds


I appears that Scons takes much longer in 2.5.0 to analyse the build 
targets. This is also apparent when running scons-2.5.0 --debug=prepare 
which takes noticeable longer to to print the file list.

I also compared the dependency tree for both version using --debug=tree 
and they are identical.

Has anybody experienced a similar behaviour and is there any tuning 
parameter to make 2.5.0 offer the same performance of 2.3.0?

Is there any debug option to analyse why Scons 2.5.0 takes such a long 
execution time?

Thanks

Henrik


More information about the Scons-users mailing list