[Scons-users] Improve speed of windows environment

Bill Deegan bill at baddogconsulting.com
Wed Apr 24 10:18:54 EDT 2019


Did you add the DefaultEnvironment(tools=[])?

On Tue, Apr 23, 2019 at 8:28 PM Pierre-Luc Boily <pierreluc.boily at gmail.com>
wrote:

>
>
> Le mar. 23 avr. 2019, à 16 h 44, Bill Deegan <bill at baddogconsulting.com>
> a écrit :
>
>> The tool isn't Object, but what type of tool creates an object.
>> Note my email said
>> env=Environment(tools=[only the tools you're using],...)
>> not
>> env=Environment(tools=[],)
>>
>
> I know, I just wanted to do some test for my own comprehension =)
>
>
>> Also why are you using: SCons.Environment.Environment  instead of
>> Environment() ?
>>
>
> Is it incorrect?   My SConstruct looks like this :
> https://pastebin.com/SwB7GkGT.  He is really neat and clean.  All the
> logic is in SConscriptManager and if I try to use only Environment call
> (without the SCons.Environment) scons is complaining that he doesn't know
> about Environment (NameError: name 'Environment' is not defined)
>
>
>> In your case it looks like you need all of MSVC (at least) so:
>> sconsEnv = Environment(MSVC_VERSION = '10.0', TARGET_ARCH = 'x86',
>> tools=['msvc','mslink','mslib'])
>>
>
> Ok thx,this works, but unfortunately, I have absolutely no performance
> gain.  Just as a matter of test, if I use   Environment(MSVC_VERSION =
> '10.0', TARGET_ARCH = 'x86', tools=[]), I can clearly see an improvement.
> It takes around 600ms to create the environment.  But soon as I add only 1
> tool, it goes back to 1500ms.  It looks like it doesn't make any difference
> having 1 or 15 tools.. weird...
>
> Well, I guess I have to live with windows drawback to being bad with
> starting process!!  I recently did a huge change in our scons
> implementation to load only needed sconscript.  For same code base, I went
> from :
> SConstruct  took 16660.409 ms
> to this
> SConstruct  took 1500 ms
>
> Which is already an awesome improvement.... But you know, more you have,
> more you want =)
>
>
>
>>
>> Give that a try.
>> -Bill
>>
>> On Tue, Apr 23, 2019 at 1:48 PM Pierre-Luc Boily <
>> pierreluc.boily at gmail.com> wrote:
>>
>>> Ok, I tried  your solution but scons complains that Object doesn't
>>> exist, (which is normal I know).  2 Stupids questions:
>>>
>>> 1- What is the difference between tools and builders in the
>>> environment?  By doing this :
>>> DefaultEnvironment(tools=[])
>>> env=Environment(tools=[],...)
>>>
>>> both tools and builders are now empty.
>>>
>>> 2- I need env.Object, env.Library env.Program, but those are gone from
>>> the BUILDERS section.  How to I add them when I create the Environment?
>>> Tried this, but that doesn't work :
>>> sconsEnv = SCons.Environment.Environment(MSVC_VERSION = '10.0',
>>> TARGET_ARCH = 'x86', tools=['Object'])
>>>
>>> Thank you very much!
>>>
>>> Pierre-Luc
>>>
>>>
>>> Le mar. 23 avr. 2019, à 10 h 54, Bill Deegan <bill at baddogconsulting.com>
>>> a écrit :
>>>
>>>> Yes.
>>>> This has long been the case.
>>>> Launching processes in Windows is MUCH slower than linux.
>>>> When SCons starts up it tries to load all the default tools.
>>>> This involves launching numerous processes to see what tools are
>>>> available and also which version(s)
>>>> You can speed this up by only loading the tools you're using on windows.
>>>>
>>>> Do you only use env.Program() or do you also use Program() (which uses
>>>> the DefaultEnvironment())
>>>> So:
>>>> DefaultEnvironment(tools=[])
>>>> env=Environment(tools=[only the tools you're using],...)
>>>>
>>>> Should help.
>>>>
>>>> -Bill
>>>>
>>>>
>>>>
>>>> On Tue, Apr 23, 2019 at 10:07 AM Pierre-Luc Boily <
>>>> pierreluc.boily at gmail.com> wrote:
>>>>
>>>>> Hello!
>>>>>
>>>>> I just realized that the creation of an environment is faster under
>>>>> centos
>>>>> compared to windows 10.  See below Dump trace with --deubg=time
>>>>> arguments :
>>>>>
>>>>> Centos : https://pastebin.com/UPggyDcj
>>>>> Windows : https://pastebin.com/11YzKNDH
>>>>>
>>>>> I already read somewhere that tool creation is time consuming, but both
>>>>> centos\windows environments looks similar to be regarding tools..  So,
>>>>> I
>>>>> don't know why windows takes 1500 ms compare to 300ms for centos.
>>>>>
>>>>> Any idea?
>>>>>
>>>>> thx!
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sent from: http://scons.1086193.n5.nabble.com/Users-f16930.html
>>>>> _______________________________________________
>>>>> 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
>>>
>> _______________________________________________
>> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://pairlist4.pair.net/pipermail/scons-users/attachments/20190424/b3a91798/attachment.html>


More information about the Scons-users mailing list