我剛開始使用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庫?
或者我只是使用錯誤的工具來完成這項工作?
我個人沒有發現預編譯頭文件有助於加速開發。如果你只是在創建一些東西,它們非常棒,但是如果你在頭文件中改變了東西,那麼它們並不總是能夠加快速度。由於這個原因,我傾向於有一個非預編譯的頭部構建開發.... – 2008-10-03 07:11:05