Ruby 捆绑:有多少个并行作业?
使用Ruby 捆绑:有多少个并行作业?,ruby,performance,parallel-processing,bundler,Ruby,Performance,Parallel Processing,Bundler,使用--作业: --jobs选项(-j)并行安装gems。例如,bundle安装-j4将使用4个工人。我们已经看到新捆绑安装的速度提高了40-60%。要始终并行安装,请运行bundle config--global jobs 4或设置bundle\u jobs 4是这里使用的示例,但为什么不是2或8?是否有一个最佳数量或计算最佳并行进程数量的方法?如果时间受网络活动限制,我会认为它应该很高,例如64,或者如果受计算限制,那么可能是机器上的内核数。这一切都取决于您的CPU有多少内核和可用内存。假设
--作业:
--jobs选项(-j)并行安装gems。例如,bundle安装-j4将使用4个工人。我们已经看到新捆绑安装的速度提高了40-60%。要始终并行安装,请运行bundle config--global jobs 4或设置bundle\u jobs
4是这里使用的示例,但为什么不是2或8?是否有一个最佳数量或计算最佳并行进程数量的方法?如果时间受网络活动限制,我会认为它应该很高,例如64,或者如果受计算限制,那么可能是机器上的内核数。这一切都取决于您的CPU有多少内核和可用内存。假设您有适当的内存量,您可以使用内核数作为-j参数。如果您在linux上,则可以运行此命令列出您的内核:
cat /proc/cpuinfo | grep processor
getconf
可在Mac OS X和Linux中工作,以防您需要它与这两个系统兼容:
$getconf\u处理器\u ONLN
12
有些人建议使用内核总数减去1,但根据我的经验,您可以使用所有内核而不会出现问题:
bundle install --jobs `getconf _NPROCESSORS_ONLN`
我认为您可以使用2或8,这实际上取决于您的机器:有多少内存和处理能力可用于该任务。