2008-10-03 70 views
3

我刚开始使用Boost 1.36。这些库对于减少我正在处理的非托管C++软件项目中所需的代码量非常有用。使用C++ Boost库提高VS项目的编译速度

但是,当我试图使用这些库时,我的编译时间增加了十倍。这几乎抵消了我使用图书馆所获得的生产力收益。

我使用的是英特尔3GHz的双核2GB内存和2003年VS

有我添加的代码片段。

 

#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(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库?
或者我只是使用错误的工具来完成这项工作?

回答

5

您是否尝试过使用预编译头文件?这包括StdAfx.h中的boost头文件或用于预编译头文件的任何头文件?

+0

我个人没有发现预编译头文件有助于加速开发。如果你只是在创建一些东西,它们非常棒,但是如果你在头文件中改变了东西,那么它们并不总是能够加快速度。由于这个原因,我倾向于有一个非预编译的头部构建开发.... – 2008-10-03 07:11:05

1

你试过Incredibuild?它将允许您在多台计算机上分发您的构建。我已经看到它成功地使用了。