Risposte:
Scott Gu ha anche pubblicato ciò che influenza la velocità di costruzione, indicando principalmente risorse I / O come il disco rigido.
Il fattore che ho trovato fa la differenza più grande non è un fattore fisico, ma un software: quale antivirus hai installato?
Alcuni prodotti antivirus non gestiscono molto bene lo sviluppo del software: vedono che tutti questi file dell'applicazione vengono riscritti, sospettano che si verifichino errori e che eseguano nuovamente la scansione di ogni file ogni volta.
(Vedi /programming/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 per ulteriori informazioni).
D'altra parte, se vuoi migliorare le prestazioni di una macchina esistente, niente batte al massimo la memoria disponibile per una vittoria veloce.
Ecco alcune belle ricerche di Scott Hanselman sull'utilizzo di più CPU per MSBUild. Le accelerazioni sono piuttosto drammatiche.
Modifica: dovrei notare, tuttavia, che per avere una buona esperienza con Visual Studio, è necessaria molta RAM. :)
La mia esperienza personale con una base di codice C ++ di dimensioni adeguate:
Processore: Pentium 4 HT 3.06 GHz
Memoria: 1 GB RAM DDR (PC 2100, quindi 333 MHz)
Disco: disco rigido 7200 RPM (UDMA 100, se la memoria serve)
Tempo di compilazione: 50 minuti
Processore: Core i7 720QM (8 processori logici) a 1,6 GHz, turbo boost a 1,73 GHz quando tutti i core sono attivi
Memoria: 8 GB RAM DDR3 a 1066 MHz
Disco: disco rigido 7200 RPM (SATA 2)
Tempo di compilazione: 4 minuti (con / MP )
Conclusione: maggiore è il numero di processori, più è semplice, anche a velocità di clock relativamente basse. Un SSD migliorerebbe ulteriormente i tempi, ma dall'osservazione dei messaggi di compilazione, dubito che lo migliorerebbe di oltre 30 secondi circa.
Per quanto mi ricordo principalmente Processore e Memoria. Un rapido google ha rivelato varie modifiche che possono migliorare i tempi di compilazione.
Joel ha recentemente pubblicato sull'effetto dei dischi a stato solido sulle compilazioni qui . La velocità del disco generalmente non migliora drasticamente il tempo di compilazione. Tuttavia secondo questo ha un effetto come sottolineato da Lyngbym .
Per la creazione di programmi C ++, il fattore n. 1 prima di tutto è strutturale: se il codice sorgente è fortemente strutturato verticalmente, avrà un impatto devastante sui tempi di costruzione, in particolare build incrementali. Ho ristrutturato localmente alcune parti di un progetto per un notevole miglioramento su un Xeon quad-core. 18 mesi dopo e loro (le persone che possiedono il progetto) non riescono ancora a eguagliare i tempi di costruzione del mio orologio da parete nemmeno su macchine Core i7.
L'effetto (positivo o negativo) del layout del software si moltiplica tra tutti i membri del team e ogni build che eseguono.
Xoreax IncrediBuild è un sistema di build distribuito che ha apportato un enorme miglioramento ai tempi di compilazione in cui lavoro. (Sfortunatamente, i tempi di collegamento sono ancora piuttosto lunghi, in particolare le build di rilascio che utilizzano l'ottimizzazione dell'intero programma e la generazione di codice tempo di collegamento, ma è prevedibile.)