Эта тема уже давно существует, и я подумал, что хотел бы добавить кое-что о том, КАК построить Boost как можно быстрее на вашем конкретном оборудовании.
Если у вас 4-х или 6-ядерный процессор, используйте -j5 или -j7 соответственно. Конечно, не стандартная сборка и не -j2, если у вас действительно нет двухъядерного ядра.
Я использую Sandy Bridge Extreme со стандартной тактовой частотой 3930 КБ (6-ядерный) на моей основной станции, но имею более 2600 КБ (4-ядерный) на старой резервной копии, и тенденция в том, что я получаю лучшее время для ускоренной компиляции с N + 1 процессами сборки, где N - количество физических ядер. N + 2 достигает точки убывающей отдачи, и времена идут вверх.
Примечания: Гиперпоточность включена, 32 ГБ ОЗУ DDR3, Samsung 840 EVO SSD.
-j7 на 6-ядерном (2 минуты и 51 секунда) (Win7 Ultimate x64) (Visual Studio 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j7 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 2
Seconds : 51
Milliseconds : 128
Ticks : 1711281830
TotalDays : 0.0019806502662037
TotalHours : 0.0475356063888889
TotalMinutes : 2.85213638333333
TotalSeconds : 171.128183
TotalMilliseconds : 171128.183
-j6 на 6-ядерном (3 минуты и 2 секунды) (Win7 Ultimate x64) (Visual Studio 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j6 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 3
Seconds : 2
Milliseconds : 809
Ticks : 1828093904
TotalDays : 0.00211584942592593
TotalHours : 0.0507803862222222
TotalMinutes : 3.04682317333333
TotalSeconds : 182.8093904
TotalMilliseconds : 182809.3904
-j8 на 6-ядерном (3 минуты и 17 секунд) (Win7 Ultimate x64) (Visual Studio 2013)
PS C:\Boost\boost_1_56_0> measure-command { .\b2 -j8 --build-type=complete msvc stage }
Days : 0
Hours : 0
Minutes : 3
Seconds : 17
Milliseconds : 652
Ticks : 1976523915
TotalDays : 0.00228764342013889
TotalHours : 0.0549034420833333
TotalMinutes : 3.294206525
TotalSeconds : 197.6523915
TotalMilliseconds : 197652.3915
Config
Building the Boost C++ Libraries.
Performing configuration checks
- 32-bit : yes (cached)
- arm : no (cached)
- mips1 : no (cached)
- power : no (cached)
- sparc : no (cached)
- x86 : yes (cached)
- has_icu builds : no (cached)
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam
- zlib : no (cached)
- iconv (libc) : no (cached)
- iconv (separate) : no (cached)
- icu : no (cached)
- icu (lib64) : no (cached)
- message-compiler : yes (cached)
- compiler-supports-ssse3 : yes (cached)
- compiler-supports-avx2 : yes (cached)
- gcc visibility : no (cached)
- long double support : yes (cached)
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
- zlib : no (cached)
Я отмечаю, что 64-битная сборка занимает немного больше времени, мне нужно сделать то же самое сравнение с ними и обновить.