【问题标题】:Limit Cores Used By Ninja on Windows限制 Ninja 在 Windows 上使用的核心
【发布时间】:2020-09-08 10:40:36
【问题描述】:

我正在尝试限制 Ninja (1.10.0) 使用的内核数量。我一直在使用 CMake(3.11 和 3.18)时推荐的参数

 '-DCMAKE_JOB_POOLS:STRING=compile=4;link=3'

取自

但这似乎没有效果,系统仍然使用编译器的所有可用内核(TASKING C 编译器 - cctc),并且启动和运行了超过 4 个进程。

  1. 是否应该在 Ninja 文件中创建一些设置来限制编译器线程?
  2. 我需要做些什么特别的事情(比如格式化)才能在 Windows 上进行这项工作吗?

【问题讨论】:

    标签: windows cmake ninja


    【解决方案1】:

    如果您在构建工具模式下运行 CMake 来构建已经生成的项目二叉树,则可以向本机构建工具(在您的情况下为 Ninja)添加其他参数,例如

    cmake --build builddir --target all --config Release -- -j4
    

    请参阅documentation 了解 CMake 构建工具模式和ninja --help 了解支持的 ninja 命令行选项

    【讨论】:

    • 不幸的是,这似乎对我们不起作用。我不确定 TASKING 编译器是否存在不尊重 Ninja 工作限制的问题,但我也不知道如何检查......
    • 不幸的是,我不知道 TASKING 编译器如何处理这个问题。以前从未使用过它。我检查了本地构建树、Ninja 和 Microsoft 编译器。
    • 出于兴趣,我发现广泛使用的 Gnu make 3.8 不允许在 Windows 上限制作业,因此它要么运行单个作业,要么使用 -j 选项尽可能多地运行。为 Windows 编译 GnuMake 4.3,我可以在调用构建时根据需要控制作业的数量,例如 -j 3。
    猜你喜欢
    • 2019-01-04
    • 2018-03-07
    • 2016-08-19
    • 2013-01-02
    • 2018-03-15
    • 2021-11-15
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多