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

时间:2020-03-06 15:03:31  来源:igfitidea点击:

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

但是,当我尝试使用这些库时,我的编译时间增加了十倍。这将大大抵消我通过使用该库所获得的生产率提高。

我正在使用具有2GB RAM和VS 2003的3GHz Intel Dual Core。

我添加了一段代码。

#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;

`
无效打印(常量矩阵和数量)
{

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

解决方案

我们是否尝试过使用预编译的头文件?那包括StdAfx.h中的boost头文件或者用于预编译头文件的头文件吗?

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