A few thoughts.. Seems like you are assuming that the SConstruct is in the top directory of a source tree. This is not a safe assumption. I've seen builds where the SConscripts are scattered over several filesystems (building a project from several shared source repositories). Can you add some tests? And documentation? Any comments on the memory footprint of running this on a larger source tree? (where SCons is using a fair amount of memory already)
Is it really necessary to make a full copy of the source tree to a temp dir? How would this impact the use of VariantDir? -Bill On Thu, Jan 14, 2016 at 11:56 AM, Schleimer, Ben via Scons-dev < [email protected]> wrote: > 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" < > [email protected]> 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 < > [email protected]> 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 < > [email protected]> 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 < > [email protected]> 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 < > [email protected]> 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 < > [email protected]> 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 > >>>>>>[email protected] > >>>>>>https://pairlist2.pair.net/mailman/listinfo/scons-dev > >>>>>> > >>>>>> > >>>>> > >>>>> > >>>>> > >>>>>_______________________________________________ > >>>>>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 > >>> > >>> > >> > >> > >> > > > >_______________________________________________ > >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 >
_______________________________________________ Scons-dev mailing list [email protected] https://pairlist2.pair.net/mailman/listinfo/scons-dev
