[Scons-users] Help my build get faster... (was SCons and parts)

Spencer Yost syost at triad.rr.com
Tue Aug 15 12:26:07 EDT 2017


I am a newbie, so I'm very excited to be able to contribute one little thing. It is a simple observation but one that you may find helpful, and one that sounds like you may have found on your own. I also have found that cloning the environment across many SConscript files is very expensive. Anytime you can simply inherit  The root environment you are much better off. I reserve the use of new environments only for those packages that require handling

Spencer Yost

> On Aug 15, 2017, at 12:09 PM, Pico Geyer <picogeyer at gmail.com> wrote:
> 
> It's actually our own builder that we are using in this case, each
> object could have different include paths or options.
> But just like if you had a list of C files to build each with their
> own include paths, wouldn't you need to create a new environment for
> each?
> 
>> On Tue, Aug 15, 2017 at 5:51 PM, Bill Deegan <bill at baddogconsulting.com> wrote:
>> Why do you need a new Environment for each object?
>> Can you paste some code to explain?
>> 
>> 
>>> On Tue, Aug 15, 2017 at 11:34 AM, Pico Geyer <picogeyer at gmail.com> wrote:
>>> 
>>> Bill,
>>> Sorry for the delay.
>>> 
>>> Right of course. I was just hoping for something in scons due to the
>>> number of SConscript files that I have (and laziness :) )
>>> So indeed it was the file I suspected.
>>> I seemed to have further narrowed it down to env.Clone(), since I need
>>> a new environment for each object. And their are roughly 2000 of them.
>>> This seems to take about 4 seconds.
>>> I found this with the combination of print messages (like your
>>> example) and the very useful  line_profiler tool
>>> (https://github.com/rkern/line_profiler)
>>> I could send you the output off list if you're interested.
>>> 
>>> Any suggestion on what I can do to improve things?
>>> If there isn't a way to make it faster, I was hoping for a way to
>>> detect early on that I'm not building that component anyway, so I
>>> don't need to process those objects (and therefore do so many
>>> environment clones).
>>> _______________________________________________
>>> Scons-users mailing list
>>> Scons-users at scons.org
>>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>> 
>> 
>> 
>> _______________________________________________
>> Scons-users mailing list
>> Scons-users at scons.org
>> https://pairlist4.pair.net/mailman/listinfo/scons-users
>> 
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> https://pairlist4.pair.net/mailman/listinfo/scons-users



More information about the Scons-users mailing list