windows 中的 SCons 超慢启动

SCons super slow startup in windows

长期以来,在使用 SCons 构建时,我一直受到启动时间长的困扰。在我的旧笔记本电脑上,构建最基本的 hello world-example 最多可能需要 60 秒。

我刚收到一台新笔记本电脑,所以我有机会对此进行进一步调查。我们的笔记本电脑预装了 Visual Studio 2010 和一些其他东西。我还需要 Visual Studio 2015.

在新解压的 PC 上,hello world 的构建花费了 "only" 10 秒(python 2.7.14,scons 3.0.0,没有其他主要应用程序 运行)

安装VS2015后,时间增加到20秒

我可以将它与我在家使用 10 年的旧 PC 进行比较,相同的构建时间不到 2 秒(但是,那里只有 VS2015)。

这种极度缓慢的原因可能是什么?有什么办法吗?这似乎是 vcvars 脚本的执行,因此是负责任的。但为什么我的工作电脑上这么慢,而不是在家里?我该如何进一步解决这个问题?

   Ordered by: cumulative time
   List reduced from 1104 to 20 due to restriction <20>

   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000   20.500   20.500 C:\Python27\scons-3.0.0\SCons\Script\Main.py:831(_main)
        1    0.000    0.000   20.324   20.324 C:\Python27\scons-3.0.0\SCons\Script\SConscript.py:155(_SConscript)
        1    0.000    0.000   20.323   20.323 C:\Temp\SConstruct:1(<module>)
      3/2    0.000    0.000   20.321   10.161 C:\Python27\scons-3.0.0\SCons\Environment.py:897(__init__)
      3/2    0.000    0.000   20.314   10.157 C:\Python27\scons-3.0.0\SCons\Environment.py:93(apply_tools)
        2    0.000    0.000   20.314   10.157 C:\Python27\scons-3.0.0\SCons\Environment.py:1782(Tool)
     28/2    0.000    0.000   20.313   10.157 C:\Python27\scons-3.0.0\SCons\Tool\__init__.py:271(__call__)
        2    0.000    0.000   20.313   10.157 C:\Python27\scons-3.0.0\SCons\Tool\default.py:38(generate)
        2    0.000    0.000   20.150   10.075 C:\Python27\scons-3.0.0\SCons\Tool\mslink.py:256(generate)
        8    0.000    0.000   20.150    2.519 C:\Python27\scons-3.0.0\SCons\Tool\MSCommon\vc.py:432(msvc_setup_env_once)
        2    0.000    0.000   20.150   10.075 C:\Python27\scons-3.0.0\SCons\Tool\MSCommon\vc.py:531(msvc_setup_env)
        2    0.000    0.000   20.149   10.074 C:\Python27\scons-3.0.0\SCons\Tool\MSCommon\vc.py:442(msvc_find_valid_batch_script)
        2    0.000    0.000   20.148   10.074 C:\Python27\scons-3.0.0\SCons\Tool\MSCommon\vc.py:381(script_env)
        1    0.000    0.000   20.147   20.147 C:\Python27\scons-3.0.0\SCons\Tool\MSCommon\common.py:144(get_output)
       12   20.134    1.678   20.134    1.678 {method 'read' of 'file' objects}
        1    0.000    0.000    0.173    0.173 C:\Python27\scons-3.0.0\SCons\Script\Main.py:1109(_build_targets)
        1    0.000    0.000    0.172    0.172 C:\Python27\scons-3.0.0\SCons\Job.py:100(run)
        1    0.000    0.000    0.169    0.169 C:\Python27\scons-3.0.0\SCons\Job.py:186(start)
        3    0.000    0.000    0.156    0.052 C:\Python27\scons-3.0.0\SCons\Action.py:644(__call__)
        2    0.000    0.000    0.155    0.078 C:\Python27\scons-3.0.0\SCons\Script\Main.py:184(execute)

我的 SConstruct 文件:

env = Environment()
hello = Program(["hello.c"])

根据 chat,此处的解决方案是禁用计算机上的防病毒软件 运行。

有了这个,SCons 的启动时间从 40 秒减少到 2 秒。还可以注意到其他领域的显着性能改进。