Улучшить скорость компиляции в VS-проекте с использованием библиотек Boost С++

Я только начал использовать Boost 1.36. Эти библиотеки были бы очень полезны для сокращения объема кода, необходимого в неуправляемом программном проекте С++, над которым я работаю.

Однако, когда я пытался использовать эти библиотеки, время компиляции увеличилось в десять раз. Это в значительной степени компенсировало бы прирост производительности, который я мог бы получить, используя библиотеку.

Я использую двухъядерный процессор Intel 3GHz с 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 ******,num_of_columns,num_of_categories,ublas::row_major=""> Matrix; 
typedef ublas::bounded_vector <long ******,num_of_columns=""> Vector; 
</long></long>

void Print(const Matrix& amount) {

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 в неоптимальном порядке? Или я использую неправильный инструмент для работы?

2 ответа

Вы пытались использовать предварительно скомпилированные заголовки? Это включает в себя заголовки форматирования в StdAfx.h или любой заголовочный файл, который вы используете для предварительно скомпилированных заголовков?


Вы попробовали Incredibuild? Это позволит вам распространять свою сборку на нескольких компьютерах. Я видел, как он успешно использовался.

licensed under cc by-sa 3.0 with attribution.