在几分钟内完成所有Boost

joh*_*ers 10 c++ boost

谁能解释为什么遵循这些指示:

http://www.boost.org/doc/libs/1_59_0/more/getting_started/unix-variants.html#easy-build-and-install

......我的体面机器需要5个小时来构建所有的Boost,而有些人报告只用了3 分钟做同样的事情?

有没有另一种方法可以构建Boost而不是上面提到的那种确实非常快的方式(相比之下,几个小时,无论如何).

我在Darwin(Mac)选项上使用Clang编译器.不知道它有多相关,但我有16 GB RAM和最近的SSD.时钟是2.3 Ghz.

编辑:我很高兴根据评论和答案报告,使用./b2 -j4 -d0选项,我的编译时间缩短到13分钟.此-jN选项未在默认的可用选项集中列出--help,您必须调用--help-options以查看这些额外的更"高级"技术.

zap*_*oyd 17

我刚刚用一些不同的构建配置进行了一些测试.

硬件:2012 MacBook Pro(2.3Ghz Ivy Bridge i7 [i7-3615QM]),工厂SSD和16GB内存.

软件:带有Xcode 7的Mac OS X 10.11.1(Apple LLVM版本7.0.0 clang-700.1.76).来自网站的Boost 1.59.0的新副本.

我测试了以下构建命令:

默认构建:

./bootstrap.sh && ./b2 -j N

构建强制libc ++的链接

./bootstrap.sh && ./b2 toolset=clang cxxflags="-stdlib=libc++" linkflags="-stdlib=libc++" -j N

对于每个我尝试了N:1(单线程),4(匹配物理核心)和8(匹配超线程核心)的三个不同值.

默认链接:

  • 8点的构建时间是6:45分钟
  • 使用4时,构建时间为7:22分钟
  • 1,构建时间为22:58分钟

链接libc ++:

  • 使用8时,构建时间为4:35分钟
  • 使用4时,构建时间为5:45分钟
  • 1,构建时间为17:15分钟

结论:即使不是全新的,Boost也不必花费一整天的时间来建立一个带有SSD的多核系统.使用默认(单个线程)构建确实比并行构建更长.OS X上带有clang的Boost构建确实从超线程中获益.与libc ++的链接似乎也快一点.


ISa*_*ych 5

我猜你没有使用并行构建选项-jN(其中N个进程,可能比你机器上的核心数略高).另外3分钟的声音就像是配备sdd或ram磁盘的机器上的单一配置,以及5个小时的所有配置,单个进程和慢速HDD.