包: 并行作业数量是多少?

7
Bundle支持并行处理,使用--jobs选项:

--jobs选项(简写为-j)可以并行安装gem。例如,bundle install -j4 将会使用4个工作线程。我们在全新的bundle安装过程中看到了40-60%的速度提升。若要始终并行安装,请运行bundle config --global jobs 4或设置BUNDLE_JOBS。

这里使用了示例值4,但为什么不是2或8?是否存在最优数量或计算最优并行进程数的方法?如果时间受网络活动限制,我认为应该很高,比如64;如果受计算能力限制,那么可能是机器上的核心数。


我认为你可以使用2或8,这取决于你的机器:可用于该任务的内存和处理能力有多少。 - lcguida
2个回答

3

这完全取决于你的CPU有多少核心以及可用内存。假设你有足够的内存,你可以使用核心数作为-j参数。如果你在Linux上,你可以运行以下命令来列出你的核心:

cat /proc/cpuinfo | grep processor

3

getconf 在Mac OS X和Linux中都可以使用,以便您需要使其与两个系统兼容:

$ getconf _NPROCESSORS_ONLN
12

有些人建议使用总核心数减1,但根据我的经验,您可以全部使用而不会出现问题:

bundle install --jobs `getconf _NPROCESSORS_ONLN`

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接