【问题标题】:What's best value for make -jmake -j 的最佳价值是什么
【发布时间】:2011-03-02 19:41:42
【问题描述】:

-j 开关的最佳值是多少?

我通常将其设置为可用的 CPU/核心数。

谢谢。

【问题讨论】:

    标签: makefile compilation


    【解决方案1】:

    我一直认为可用核心数加 1 作为推荐值

    【讨论】:

    • +1 背后的想法是,它有助于让处理器在等待下一个源文件的磁盘 I/O 时继续执行某些操作。
    • 如果我使用 distcc 会怎样?那么它仍然取决于触发它的主机上的核心数量或 distcc 主机中所有核心的总和?
    【解决方案2】:

    只是测量。

    从核心数开始。然后添加一个,直到您觉得收益递减为止。

    【讨论】:

    • +1 实验是唯一真正的方法。我已经编写了大量受 I/O 限制的多线程代码,您通常可以将线程数增加到远远超过处理器数,并且仍然可以获得性能提升。然后在某些时候,性能下降,通常是非常显着的。
    • 无论这是否是一个好主意,我都感到有些不知所措。在某些时候,您获得更高的性能只是因为线程占用了更大的时间片。这不是一个好主意。相反,如果构建过程如此重要,则应该使用更少的线程并提高nice'ness 级别。
    • @Mads:我在这里谈论的是构建过程可以进行大量磁盘访问。许多线程可以很快被阻塞等待磁盘,同时其他线程(每个内核一个)可以进行实际编译。
    猜你喜欢
    • 1970-01-01
    • 2012-11-12
    • 2022-01-26
    • 2012-06-24
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    • 1970-01-01
    相关资源
    最近更新 更多