C ++ Boost Librariesを使用してVSプロジェクトのコンパイル速度を改善する
-
03-07-2019 - |
質問
Boost 1.36の使用を開始しました。これらのライブラリは、私が取り組んでいるアンマネージC ++ソフトウェアプロジェクトで必要なコードの量を減らすのに非常に役立ちます。
ただし、これらのライブラリを使用しようとすると、コンパイル時間が10倍になりました。これは、ライブラリを使用することで得られる生産性の向上をほぼ相殺します。
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;
void Print(const Matrix&amp; 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 Libraryを次善の方法で使用していますか?
または、仕事に間違ったツールを使用していますか?
解決
プリコンパイル済みヘッダーを使用してみましたか?これには、StdAfx.hのブーストヘッダーまたはプリコンパイル済みヘッダーに使用するヘッダーファイルが含まれていますか?
他のヒント
Incredibuild を試しましたか?ビルドを複数のコンピューターに配布できます。正常に使用されるのを見ました。
所属していません StackOverflow