Migliora la velocità di compilazione nel progetto VS utilizzando C ++ Boost Libraries
-
03-07-2019 - |
Domanda
Ho appena iniziato a utilizzare Boost 1.36. Queste librerie sarebbero molto utili per ridurre la quantità di codice necessaria nel progetto software C ++ non gestito su cui sto lavorando.
Comunque quando ho provato ad usare queste librerie i miei tempi di compilazione sono aumentati di dieci volte. Ciò compenserebbe praticamente i guadagni di produttività che riceverei usando la libreria.
Sto usando un Intel Dual Core 3GHz con 2 GB di RAM e VS 2003.
Esiste uno snippet del codice che ho aggiunto.
#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);
}
Il problema è con VS 2003?
So che VS 2008 è più veloce, ma l'aggiornamento sarà una vendita difficile.
È solo che Boost è ottimizzato per tempi di esecuzione rapidi e non rapidi di compilazione?
Sto solo usando la libreria Boost in un modo non ottimale?
O sto solo usando lo strumento sbagliato per il lavoro?
Soluzione
Hai provato a usare intestazioni precompilate? Ciò include le intestazioni boost in StdAfx.h o qualsiasi file di intestazione che usi per le intestazioni precompilate?
Altri suggerimenti
Hai provato Incredibuild ? Ti permetterà di distribuire la tua build su più computer. L'ho visto usato con successo.