2008-10-03 115 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?它將允許您在多臺計算機上分發您的構建。我已經看到它成功地使用了。