使用C ++ Boost库提高VS项目的编译速度

时间:2008-10-03 02:03:55

标签: c++ performance visual-studio boost

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

然而,当我尝试使用这些库时,我的编译时间增加了十倍。这几乎抵消了使用该库所带来的生产力提升。

我正在使用3GHz Intel双核,2GB内存和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(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);   

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

2 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:1)

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