更多核心(-j选项)是否比使用SCons构建更慢?

时间:2016-03-28 14:35:06

标签: python build multiprocessing scons

我的CPU中有2个内核。如果指定--jobs=4,SCons的构建会变慢吗?我问的原因是因为Python 2 runs slower on multiple cores

实际上我正在考虑将--jobs=4添加到我的所有项目中作为默认值。

如果答案是平台相关的,则编译器是GCC,平台是Windows。

1 个答案:

答案 0 :(得分:1)

一般来说,使用scons -j#构建将比连续构建更快。

您发布的链接适用于运行纯Python代码。但是,因为在SCons构建中花费的大部分时间都在等待外部工具完成(编译,链接等)基准不适用。

如果你有一堆没有I / O并且是纯python的构建器,那么它可能会产生一些影响。

一般来说,在构建软件的时候你会看到近乎线性的加速(处理SConscripts和构建当前不受-j影响的依赖树花费了一些时间),直到你让我饱和为止您正在运行的文件系统的/ O和/或具有-j#,这大大超过了您可用的核心数。

我们可能在邮件列表中有一些基准。

请注意,-j特别不会对null产生任何影响(由于所有文件都是最新的,因此无需构建任何内容),对增量构建的影响较小,只需要构建少量文件(由于上述问题)。