[Scons-dev] scons daemon

Schleimer, Ben bensch128 at yahoo.com
Thu Jan 14 14:56:39 EST 2016


Hi,
    I finished up the watch mode as best as I could and posted a pull request for it here https://bitbucket.org/scons/scons/pull-requests/289/watch-mode/diff

I am hoping that people will try it out for their incremental builds and see it if is working for them or not and if it helps their iteration time.
I tried to minimize changes in the core scons code. The only major change I had to make was to add 
   SCons.Script._SConscript.global_list_of_processed_sconscipt_files


This is used to track where the SConscript files are so that a commonprefix can be established for all of the SConstruct files.

Sincerely
Ben


On Tuesday, December 29, 2015 8:23 PM, "Schleimer, Ben via Scons-dev" <scons-dev at scons.org> wrote:


>
>
>Hi William,
>
>   The non-interactive timings are not affected by the patch.
>
>
>Besides, I'm giving up on that patch and writing a completely separate Watch mode. It'll be started by "scons --watch" and it'll be a background compilation triggered by file changes. 
>
>
>
>Once I get something simple working, I'll post the pull request so people can criticize it and hopefully improve it so that it works in a general way.
>
>
>Sincerely
>Ben
>
>
>
>
>On Tuesday, December 29, 2015 7:25 PM, William Blevins <wblevins001 at gmail.com> wrote:
>
>
>>
>>
>>No, I just wanted the profile from before the patch and after the patch on the same code. Unless I misunderstood your output from last time, you only supplied the information regarding the patched version correct?
>>
>>
>>V/R,
>>William
>>
>>
>>On Tue, Dec 29, 2015 at 11:25 PM, Schleimer, Ben via Scons-dev <scons-dev at scons.org> wrote:
>>
>>Hi, 
>>>
>>>
>>>
>>>> Try running with --debug=time
>>>
>>>
>>>Did you want to see all of the build output?
>>>
>>>
>>>Ben
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>On Tuesday, December 29, 2015 2:57 PM, Bill Deegan <bill at baddogconsulting.com> wrote:
>>>
>>>
>>>>
>>>>
>>>>Try running with --debug=time
>>>>
>>>>
>>>>--debug=time
>>>>Prints various time profiling information:
the time spent executing each individual build command;
the total build time (time SCons ran from beginning to end);
the total time spent reading and executing SConscript files;
the total time spent SCons itself spend running
(that is, not counting reading and executing SConscript files);
and both the total time spent executing all build commands
and the elapsed wall-clock time spent executing those build commands.
(When scons is executed without the -j option,
the elapsed wall-clock time will typically
be slightly longer than the total time spent
executing all the build commands,
due to the SCons processing that takes place
in between executing each command.
When scons is executed with the -j option,
and your build configuration allows good parallelization,
the elapsed wall-clock time should
be significantly smaller than the
total time spent executing all the build commands,
since multiple build commands and
intervening SCons processing
should take place in parallel.)
>>>>-Bill
>>>>
>>>>
>>>>
>>>>
>>>>On Tue, Dec 29, 2015 at 2:47 PM, William Blevins <wblevins001 at gmail.com> wrote:
>>>>
>>>>I guess my point here was that I wanted to know where the time savings was happening since SCons does split out some process timings.
>>>>>
>>>>>
>>>>>I just wanted to see a regular build timing with and without your patch.
>>>>>
>>>>>
>>>>>V/R,
>>>>>William
>>>>>
>>>>>
>>>>>On Tue, Dec 29, 2015 at 7:07 PM, Schleimer, Ben via Scons-dev <scons-dev at scons.org> wrote:
>>>>>
>>>>>Hi William,
>>>>>>
>>>>>>
>>>>>>>Can you give the time saving using --debug=time for -j1 and -j4?
>>>>>>>
>>>>>>
>>>>>>   Sure,
>>>>>>
>>>>>>regular scons build (scons -jX --debug=time)
>>>>>>a clean build with -j1 is:
>>>>>>Total build time: 20.901390 seconds
>>>>>>Total SConscript file execution time: 0.149543 seconds
>>>>>>Total SCons execution time: 0.444850 seconds
>>>>>>Total command execution time: 20.306997 seconds
>>>>>>
>>>>>>
>>>>>>an incremental build with -j1 is:
>>>>>>Total build time: 2.439754 seconds
>>>>>>Total SConscript file execution time: 0.151794 seconds
>>>>>>Total SCons execution time: 0.337350 seconds
>>>>>>Total command execution time: 1.950610 seconds
>>>>>>
>>>>>>
>>>>>>a clean build with -j4 is:
>>>>>>Total build time: 7.158301 seconds
>>>>>>Total SConscript file execution time: 0.153021 seconds
>>>>>>Total SCons execution time: 0.107556 seconds
>>>>>>Total command execution time: 6.897724 seconds
>>>>>>
>>>>>>
>>>>>>an incremental build with -j4 is:
>>>>>>Total build time: 2.368260 seconds
>>>>>>Total SConscript file execution time: 0.151281 seconds
>>>>>>Total SCons execution time: 0.183930 seconds
>>>>>>Total command execution time: 2.033049 seconds
>>>>>>
>>>>>>
>>>>>>interactive build (scons --interactive -jX --debug=time)
>>>>>>a clean build with -j1:
>>>>>>time to do a build = 19.983217001 sec
>>>>>>
>>>>>>an incremental build with -j1:
>>>>>>time to do a build = 2.2111852169 sec
>>>>>>
>>>>>>a clean build with -j4:
>>>>>>time to do a build = 6.93614792824 sec
>>>>>>
>>>>>>an incremental build with -j4:
>>>>>>time to do a build = 2.17438697815 sec
>>>>>>
>>>>>>
>>>>>>It's consistently 0.2 seconds faster with the interactive build.
>>>>>>Not a huge amount but I'm not using that many SConscript files.
>>>>>>(5 SConscript files and 2 SConstruct files)
>>>>>>
>>>>>>
>>>>>>
>>>>>>Cheers
>>>>>>
>>>>>>
>>>>>>Ben
>>>>>>_______________________________________________
>>>>>>Scons-dev mailing list
>>>>>>Scons-dev at scons.org
>>>>>>https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>>_______________________________________________
>>>>>Scons-dev mailing list
>>>>>Scons-dev at scons.org
>>>>>https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>_______________________________________________
>>>Scons-dev mailing list
>>>Scons-dev at scons.org
>>>https://pairlist2.pair.net/mailman/listinfo/scons-dev
>>>
>>>
>>
>>
>>
>
>_______________________________________________
>Scons-dev mailing list
>Scons-dev at scons.org
>https://pairlist2.pair.net/mailman/listinfo/scons-dev
>
>
>


More information about the Scons-dev mailing list