SCons 在 Windows 中启动超慢

2023-12-02

长期以来,我在使用 SCons 进行构建时一直饱受启动时间过长的困扰。在我的旧工作笔记本电脑上,构建最基本的 hello world 示例可能需要长达 60 秒的时间。

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

在新拆包的 PC 上,构建 hello world“仅”花费了 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 秒。还可以注意到其他领域的显着性能改进。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SCons 在 Windows 中启动超慢 的相关文章

  • 03 SCons 自动构建工具编译hello.c

    安装mingw 我的电脑已经安装过 xff0c 下面主要说下配置环境 我们将mingw的路径和scons的虚拟环境路径添加到临时的环境变量 这样做的好处是使用的时候添加 xff0c 不与其它版本的全局的环境变量冲突 后期我编译ARM程序时把
  • scons 实用说明(一)

    还在为写一个makefile发愁吗 还在为难记的make参数而苦恼吗 有了scons一切都边的简单了 最近研究了下scons 发现和makefile相比 soncs编译c和c 程序真的太方便了 搞程序什么做好 当然是简单实用最好下面大家就一
  • 从 Repository() 编译的源代码未放入分层 SCons 项目的变体目录中

    我有一个分层项目 它使用公共系统目录中的源代码 为此我使用 SConsRepository 函数并希望将所有构建输出 本地代码和从存储库中获取的代码 放置在variant dir中 如果我使用Repository 在简单场景中运行函数 非分
  • 使用 Python subprocess.call() 启动 ncurses 进程

    我正在尝试致电 ct ng http crosstool ng org 来自 SCons SConstruct 脚本 所以基本上来自 Python 使用以下方法 ret subprocess call mnt build pw build
  • COBOL 的 Scons

    我想在 scons 中创建一个与 COBOL 一起使用的构建器 这是一个开始 import re Import env Source src cpy COPYBK1 cpy src cpy COPYBK2 cpy src cpy COPYB
  • 为什么 dlopen 函数内传递的 std::any 的 std::any_cast 会引发错误

    我正在摆弄 c 17 和插件 并且遇到了一个无法解决的错误 在下面的 MWE 中 我可以调用一个本地函数 该函数接受std any 当我尝试阅读内容时 一切都按预期进行 当我通过插件 dlopen 加载这个完全相同的函数时 它正确地看到了a
  • SCons 无法选择编译器(MinGW)[重复]

    这个问题在这里已经有答案了 我有一个简单的 SConstruct 文件 其中包含以下代码 path C MinGW bin env Environment ENV PATH path Program target myprogram sou
  • SCons - 非标准位置的标头/库

    我正在尝试使用 SCons 编译一个程序 该程序需要一组我已安装在非标准位置的依赖项 我已将依赖项安装在 home dja ocr 中 现在我正在尝试编译主程序 但不知道如何告诉 SCons 在哪里查找库和标头 我已经尝试过 除其他外 sc
  • “cl”未被识别为内部或外部命令

    下面是我在 windows7 中运行 scons 编译器时的错误消息 cl is not recognized as an internal or external command operable program or batch fil
  • SCons 不会清除所有文件

    我有一个包含 builds 目录的文件系统 每个目录都包含一个名为 build info xml 的文件 然而 一些构建发生在构建脚本生成 build info xml 之前 因此在这种情况下 我有一个有点不平凡的 SCons SConst
  • SCons 问题 - 不理解 Variables 类

    我正在为一个项目开发 SConstruct 构建文件 并且尝试从选项更新为变量 因为选项已被弃用 我不明白如何使用变量 我有 0 python 经验 这可能是造成这一点的原因 例如 我有这个 opts Variables opts Add
  • 告诉 SCons 不要自动创建目录?

    我正在尝试让 SCons 查看我需要的 git 存储库 并希望使该存储库保持最新 问题是我必须告诉它 git 存储库包含哪些文件才能在构建中使用它们 如果我这样做 SCons 将在尝试克隆存储库之前创建存储库 例如 假设我想克隆 GStre
  • 使用 scons 编译带有 -std=c++11 标志的 c++ 文件

    我正在尝试使用 scons 编译带有 std c 11 选项的 c 文件 文件 测试 cc include
  • 无法运行 scons 并出现导入错误

    我已经安装了 scons 2 3 2 并安装了 python 2 4 当我运行 scons 时 我看到以下错误 scons Import failed Unable to find SCons files in usr bin engine
  • ant+cpptasks 与 scons 与 make

    我正在调查scons http www scons org 我只是想确保在我将大量脑细胞投入到完全不同的事物之前我知道替代方案是什么 我过去一直在使用 GNU make 但从来没有对它感到特别满意 特别是 为什么 Ant 没有更频繁地用于
  • Scons:仅当目标发生更改时才生成版本文件

    我需要从 SCons 脚本生成 version cc 文件 仅当目标的任何源文件发生更改时才应生成此文件 假设 SCons 脚本有以下语句 python function which generates version cc in the
  • SCons 库和子库

    我有一个基于 SCons 的分层构建系统 我有一个根 SConstruct 它调用一个构建共享库的 SConscript 然后调用另一个构建依赖于共享库的可执行文件的 SConscript 所以这是我的问题 我对linux上共享库的理解是
  • 需要帮助调试缓慢的 scons 运行时

    我正在使用 scons 构建两个项目 一个项目效果很好 而另一个 更复杂 项目则非常令人沮丧 这是我在为第二个项目运行 scons 时看到的内容 S time scons scons Reading SConscript files lt
  • 如何解决 CheckLib 返回 false 的问题?

    Scons版本是2 3 3 这是构建脚本的相关部分 if not conf CheckLib portaudio raise Exception Did not find libportaudio a portaudio lib or th
  • vc90上的jsoncpp?

    任何人都有jsoncpp http jsoncpp sourceforge net 在vc90上工作 他们使用构建系统 Scons 我从未听说过 我安装了最新的Scons 找到了一个未记录的scons bat 在我的jsoncpp目录中启动

随机推荐

  • SimpleTestCursor robolectric 3.0--编译问题

    我正在尝试在我的应用程序中测试光标 但对于以下导入 我收到错误消息 无法解析符号 测试员 我正在使用 Robolectric 3 0 为什么导入无法解析 我是否缺少一些依赖项 我看过互联网但没有支持 请帮忙 我正在尝试使用 this API
  • 如何将张量板与 tf.layers 一起使用?

    由于权重没有明确定义 我如何将它们传递给摘要编写者 例如 conv1 tf layers conv2d tf reshape X FLAGS batch 3 160 320 filters 16 kernel size 8 8 stride
  • Eclipse PyDev 抛出虚假错误

    我昨天更新了 PyDev Eclipse 现在它告诉我没有 name其他保留字 内置函数无效 但脚本运行良好 我在这个论坛上读到 问题涉及错误导入内置程序 我尝试过更改解释器并重新添加它 但没有成功 有人可以帮我吗 错误 未定义的变量mai
  • glut - 按住某个键

    我有一些基本代码来使用 glut 收集按键向上和按键按下事件 如果我按住一个键 我会连续触发事件 下 上 下 上 下 上 而不是预期的向下 开始时一次 和向上 一次 最后 include
  • 使用 HTML 按钮调用 JavaScript 函数

    我正在尝试使用 HTML 按钮来调用 JavaScript 函数 这是代码
  • Rails 3.1:引擎与可安装应用程序

    有人可以帮助我理解 Rails 引擎和可安装应用程序之间的区别吗 在 Rails 3 1 中 您可以使用 rails new 插件 创建任一插件 命令 rails plugin new forum full Engine rails plu
  • 非常基础的 PHP 和 Mysql

    背景 我更像是一名设计师而不是程序员 但我已经破解了许多开源 CMS Drupal Joomla Wordpress 的模板 我想从头开始了解php和mysql数据库的关系 假设我本地有一个工作数据库和 php 引擎 连接到数据库并创建表的
  • 为什么 Magento 这么慢? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 Magento 通常都这么
  • cURL 在 PHP 7 上非常慢,但在 PHP 5 上则不然

    对于我来说 使用 PHP7 0 11 时 cURL 似乎比仅从命令行运行请求或在 PHP5 6 24 中运行时慢得多 我正在使用以下代码对其进行测试 curl curl init curl setopt curl CURLOPT URL h
  • 我们可以使用 Hyperledger 创建不可替代的代币吗?

    根据 ERC 721 ERC 721 是一个免费 开放的标准 描述了如何构建 以太坊区块链上不可替代或独特的代币 虽然大多数 代币是可替代的 每个代币都与其他代币相同 ERC 721 代币都是独一无二的 是否有关于像超级账本这样的许可区块链
  • 将 Javascript 数组中的连续重复值分组

    我有这个数组 var arr a a b b b c d d a a a 我希望这个输出 a a b b b c d d a a a 观察 请注意 我不想对所有重复值进行分组 仅连续重复值 谁能帮我 解决方案与Array prototype
  • 从 SwiftUI 上的部分列表中删除项目

    Overview 我正在使用核心数据做一个简单的应用程序我有两个实体用户和地区该应用程序按地区显示用户列表问题是在删除操作中 如果我尝试删除第二个部分 则列表会从第一个部分中删除用户用户从第二部分删除第二个用户从第一部分 我认为索引集发送该
  • Resteasy安全拦截器-如何在拦截器内获取客户端IP地址?

    我已经实现了一个拦截器 通过以下注释对客户端 IP 地址进行安全检查 提供者 服务器拦截器 优先级 安全 preprocess 方法采用参数 HttpRequest 请求 ResourceMethod 方法 有没有办法从 Resteasy
  • PHP 文件上传 - CGI 上的内存处理

    我想知道 PHP 如何处理文件上传 我是read文件上传将被分割成块 并在上传完成后组装 这个事实有证实吗 这将有助于了解文件上传的处理和设置 mod php 或 CGI 的处理相同吗 mod php 与 Apache 的联系更加紧密 CG
  • Rails 在患有 STI 时设计登记表

    我不知道如何创建工人和协会 所以我能够将它们联系在一起 我在用户中有一个类型列 这是我的表单 http localhost 3000 workers sign up h2 Create Worker h2 p br p p b b p
  • 我是否需要付费计划才能在 firebase 功能上使用 recaptcha?

    我创建了一个 firebase 函数来进行网站的 recapcha 验证 但我收到了人们在拥有 Spark 免费 计划并尝试向外部 api 发送请求时遇到的错误 这是我的错误 Firebase 对所有 http 请求执行 ENOTFOUND
  • python的“set”稳定吗?

    这个问题是在回答另一个SO问题时出现的 there 当我对 python 集进行多次迭代 在调用之间不更改它 时 我可以假设它总是以相同的顺序返回元素吗 如果不是 改变顺序的理由是什么 是确定性的还是随机的 或者定义的实现 当我重复调用同一
  • 如何使用 Sass 获取动态列表中的项目数?

    ul li li li li li li li li ul 是否可以使用 Sass 获取动态列表的最后一项的 n 值 就像使用 each 或 for 语句计算 ul 中的项目数一样 萨斯号only编译为 CSS 它永远不会发送到浏览器 它不
  • hdf5 Java 库入门

    我正在用 jhdf5 学习 HDF5 我正在 MAC OS X 上工作 酿造安装hdf5 这会将 hdf5 1 10 安装在 usr local Cellar hdf5 中 复制此文件并将其放入 gradle 项目中 https suppo
  • SCons 在 Windows 中启动超慢

    长期以来 我在使用 SCons 进行构建时一直饱受启动时间过长的困扰 在我的旧工作笔记本电脑上 构建最基本的 hello world 示例可能需要长达 60 秒的时间 我刚刚收到一台新笔记本电脑 所以我有机会进一步调查这一点 我们的笔记本电