Stiamo ottenendo tempi di compilazione molto lenti, che possono richiedere fino a 20+ minuti su macchine dual core 2GHz, 2G Ram.
Molto di questo è dovuto alle dimensioni della nostra soluzione che è cresciuta fino a oltre 70 progetti, così come al VSS che è un collo di bottiglia in sé quando hai molti file. (lo scambio di VSS non è purtroppo un'opzione, quindi non voglio che questo scenda in un VSS bash)
Stiamo esaminando la fusione di progetti. Stiamo inoltre cercando soluzioni multiple per ottenere una maggiore separazione dei problemi e tempi di compilazione più rapidi per ciascun elemento dell'applicazione. Questo che vedo diventerà un inferno DLL mentre cerchiamo di mantenere le cose in sincronia.
Sono interessato a sapere come altri team hanno affrontato questo problema di ridimensionamento, cosa fai quando la tua base di codice raggiunge una massa critica che stai perdendo mezza giornata guardando la barra di stato consegnare i messaggi di compilazione.
AGGIORNAMENTO Ho dimenticato di menzionare questa è una soluzione C #. Grazie per tutti i suggerimenti C ++, ma sono passati alcuni anni da quando ho dovuto preoccuparmi delle intestazioni.
MODIFICARE:
Bei suggerimenti che hanno aiutato finora (senza dire che non ci sono altri buoni suggerimenti qui sotto, proprio quello che ha aiutato)
- Nuovo laptop 3GHz: la potenza dell'utilizzo perduto fa miracoli quando si lamenta della gestione
- Disabilita Anti Virus durante la compilazione
- Disconnessione da VSS (in realtà la rete) durante la compilazione - Potrei farci rimuovere del tutto l'integrazione VS-VSS e continuare a utilizzare l'interfaccia utente VSS
Ancora non rippare sbuffando attraverso una compilazione, ma tutto aiuta.
Orion ha menzionato in un commento che anche i generici possono recitare. Dai miei test sembra esserci un impatto minimo sulle prestazioni, ma non abbastanza alto da essere certo: i tempi di compilazione possono essere incoerenti a causa dell'attività del disco. A causa dei limiti di tempo, i miei test non includevano tanti generici, o tanto codice, come apparirebbero nel sistema live, quindi potrebbero accumularsi. Non eviterei di usare i generici dove dovrebbero essere usati, solo per le prestazioni in fase di compilazione
SOLUZIONE
Stiamo testando la pratica di costruire nuove aree dell'applicazione in nuove soluzioni, importando nelle ultime DLL come richiesto, integrandole nella soluzione più ampia quando ne siamo soddisfatti.
Potremmo anche fare lo stesso con il codice esistente creando soluzioni temporanee che incapsulano semplicemente le aree su cui dobbiamo lavorare e gettandole via dopo aver reintegrato il codice. Dobbiamo valutare il tempo necessario per reintegrare questo codice rispetto al tempo che guadagniamo non avendo Rip Van Winkle come esperienze con una ricompilazione rapida durante lo sviluppo.