[Scons-dev] scons-2.5.0 performance issue?
William Blevins
wblevins001 at gmail.com
Mon Apr 11 11:40:53 EDT 2016
Thomas,
Even on no-op, the difference in dependency generation could be
substantial. Consider comparing '--tree=prune' between a small QT target
between 2.5.0 and 2.4.1 and I think you will see that they are quite
different.
V/R,
William
On Mon, Apr 11, 2016 at 3:59 PM, Thomas Berg <merlin66b at gmail.com> wrote:
> Bill, below is the output of --debug=count, it is identical with
> scons-2.4.1 and scons-2.5.0.
>
> Since my case was about the no-op build (nothing is built), less
> parallelization should not be an issue. We do have about 900 Qt Moc
> generated files in our build, and I guess 1-2000 other generated
> files. When moving from 2.4.1 to 2.5.0, the I can see that the moc
> build steps are being re-run, nothing else. Still I find it mysterious
> if just a small percentage increase in the number of dependencies can
> triple the scons processing time.
>
> If others are not seeing these slowdowns, maybe our build is getting
> hit bad due to the form of our dependency graph or something.
>
> Thanks,
> Thomas
>
>
> Object counts:
> pre- post- pre- post-
> read read build build Class
> 0 3277 3277 35628 Action.CommandAction
> 0 220 220 220 Action.CommandGeneratorAction
> 0 894 894 894 Action.FunctionAction
> 0 1670 1670 1670 Action.LazyAction
> 0 9 9 35 Action.ListAction
> 0 1563 1563 1563 Builder.BuilderBase
> 0 220 220 220 Builder.CompositeBuilder
> 0 28632 28632 28632 Builder.OverrideWarner
> 0 44 44 44 Environment.Base
> 0 1142 1142 1142 Environment.EnvironmentClone
> 0 16 16 16 Environment.OverrideEnvironment
> 0 40815 40815 42115 Executor.Executor
> 0 0 0 47872 Executor.Null
> 0 98922 98922 107638 Node.FS.Base
> 0 5285 5285 6580 Node.FS.Dir
> 0 44079 44079 51437 Node.FS.File
> 0 0 0 1 Node.FS.RootDir
> 0 99703 99703 108420 Node.Node
>
> On Mon, Apr 11, 2016 at 3:47 PM, Bill Deegan <bill at baddogconsulting.com>
> wrote:
> > Thomas,
> >
> > Can you run and post with "--debug=count"?
> >
> > Thanks,
> > Bill
> >
> > On Mon, Apr 11, 2016 at 7:14 AM, Thomas Berg <merlin66b at gmail.com>
> wrote:
> >>
> >> Hi all,
> >>
> >> First of all, thanks for the 2.5.0 release!
> >>
> >> I have tested it in the build at my dayjob now, where we have a large
> >> C++ application built with scons: around 7-8000 .cpp files, same
> >> amount of headers, some code generation steps including Qt moc-ing.
> >> Unfortunately it seems that something has happened in scons-2.5.0 that
> >> slows down the no-op build quite significantly. This is the output of
> >> scons --debug=time in an almost-no-op build of our source tree:
> >>
> >> ========================================================
> >> = 2.5.0
> >> ========================================================
> >>
> >> Total build time: 933.582000 seconds
> >> Total SConscript file execution time: 55.395000 seconds
> >> Total SCons execution time: 858.109000 seconds
> >> Total command execution time: 20.078000 seconds
> >>
> >> ========================================================
> >> = 2.4.1
> >> ========================================================
> >>
> >> Total build time: 337.473000 seconds
> >> Total SConscript file execution time: 62.303000 seconds
> >> Total SCons execution time: 256.638000 seconds
> >> Total command execution time: 18.532000 seconds
> >>
> >> ========================================================
> >> = 2.3.4
> >> ========================================================
> >>
> >> Total build time: 331.774000 seconds
> >> Total SConscript file execution time: 61.290000 seconds
> >> Total SCons execution time: 249.606000 seconds
> >> Total command execution time: 20.878000 seconds
> >>
> >> ------------------------------------------------------------
> >> This is with python-2.7.9 64bit on Windows 7.
> >>
> >> So it seems that the scons execution time has increased by a factor of
> >> 3 in our build, between scons-2.4.1 and 2.5.0 :(
> >>
> >> For us the 5.5 minute no-op build time has already been an issue, so
> >> the new 15 minute no-op build is bad news. If you have just changed a
> >> single file, and need to build from the top to check that everything
> >> is up to date, 15 minutes is a very long time... I'm seeing similar
> >> slowdowns for our partial builds where we only execute some of our
> >> SConscripts (build time going from 16 to 25 seconds for example).
> >>
> >> 1. Is anyone else seeing this?
> >> 2. Any idea what changes that could cause something like this? I could
> >> try bisecting or reverting some changes to narrow it down
> >> 3. Is there anything else I can do, like posting the output of
> profiling?
> >>
> >> I also have some other smaller hobby C++ projects that I could profile.
> >>
> >> Thanks for any hints,
> >> Thomas Berg
> >> _______________________________________________
> >> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist2.pair.net/pipermail/scons-dev/attachments/20160411/dafa6f3b/attachment.html>
More information about the Scons-dev
mailing list