Повышение скорости компиляции в проекте VS с использованием библиотек C ++ Boost
-
03-07-2019 - |
Вопрос
Я только начал использовать Boost 1.36. Эти библиотеки были бы очень полезны для уменьшения объема кода, необходимого в неуправляемом программном проекте C ++, над которым я работаю.
Однако когда я попытался использовать эти библиотеки, время компиляции увеличилось в десять раз. Это в значительной степени компенсирует прирост производительности, который я получу, используя библиотеку.
Я использую двухъядерный процессор Intel с частотой 3 ГГц, 2 ГБ ОЗУ и VS 2003.
Есть фрагмент кода, который я добавил.
#include "boost/numeric/ublas/matrix.hpp" #include "boost/numeric/ublas/vector.hpp" #include "boost/numeric/ublas/matrix_proxy.hpp" typedef ublas::bounded_matrix <long double,NUM_OF_COLUMNS,NUM_OF_CATEGORIES,ublas::row_major> Matrix; typedef ublas::bounded_vector <long double,NUM_OF_COLUMNS> Vector;
<код>
void Print (постоянная матрица и количество)
{Код>
Vector total;
total.clear();
for (int category = 0; category < NUM_OF_CATEGORIES; category++)
{
PrintLine(ublas::row(amount, category));
total += ublas::row(amount, category);
}
PrintLine(total);
Код> <р> <код>}
Код>
Проблема с VS 2003?
Я знаю, что VS 2008 быстрее, но обновление будет трудно продать.
Это просто, что Boost оптимизирован для быстрого запуска, а не быстрого времени компиляции?
Я просто использую Boost Library неоптимальным способом?
Или я просто использую не тот инструмент для работы? Р>
Решение
Вы пробовали использовать предварительно скомпилированные заголовки? Это включает в себя заголовки повышения в StdAfx.h или любой другой файл заголовка, который вы используете для предварительно скомпилированных заголовков?
Другие советы
Вы пробовали Incredibuild ? Это позволит вам распространять вашу сборку на несколько компьютеров. Я видел, как он успешно используется.