Améliorez la vitesse de compilation dans les projets VS à l'aide de bibliothèques C ++ Boost
-
03-07-2019 - |
Question
Je viens de commencer à utiliser Boost 1.36. Ces bibliothèques seraient très utiles pour réduire la quantité de code nécessaire dans le projet logiciel non géré C ++ sur lequel je travaille.
Cependant, lorsque j'ai essayé d'utiliser ces bibliothèques, mes temps de compilation ont été multipliés par dix. Cela compenserait à peu près les gains de productivité que je recevrais en utilisant la bibliothèque.
J'utilise un processeur Intel Dual Core 3GHz avec 2 Go de RAM et VS 2003.
Il y a un extrait du code que j'ai ajouté.
#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; montant)
{
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);
}
Le problème est-il avec VS 2003?
Je sais que VS 2008 est plus rapide mais la mise à niveau va être difficile à vendre.
Est-ce juste que Boost est optimisé pour des temps d'exécution rapides et non pour des temps de compilation rapides?
Suis-je en train d'utiliser la bibliothèque Boost de manière sous-optimale?
Ou est-ce que j'utilise simplement le mauvais outil pour le travail?
La solution
Avez-vous essayé d'utiliser des en-têtes précompilés? Cela inclut les en-têtes de boost dans StdAfx.h ou le fichier d’en-tête que vous utilisez pour les en-têtes précompilés?
Autres conseils
Avez-vous essayé Incredibuild ? Cela vous permettra de distribuer votre build sur plusieurs ordinateurs. Je l'ai vu utilisé avec succès.