Domanda

Un'app legacy su cui sto lavorando attualmente richiede circa 2 ore per essere costruita. Il progetto ha circa 170 progetti con 150 o meno C ++ non gestito e gli altri 30 C # .Net 2.0.

Quali sono alcuni suggerimenti su come migliorare i tempi di costruzione per qualcosa del genere?

È stato utile?

Soluzione

Concentrati sui progetti C ++: sono quasi garantiti i più grandi scarichi di tempo per la costruzione.

Alcuni consigli su come ridurre i tempi di compilazione del C ++:

  • Assicurati di includere solo le intestazioni di cui hai bisogno nei progetti C ++!
  • Utilizza le dichiarazioni a termine, ove possibile, nelle intestazioni anziché includere altre intestazioni
  • Usa l'opzione / MP per costruire in parallelo, quando possibile
  • Usa l'astrazione in modo efficace
  • Risparmia nell'uso delle funzioni inline, poiché costano di più in fase di compilazione
  • Ottieni le dipendenze corrette, quindi non stai costruendo più spesso di quanto richiesto
  • Utilizza le intestazioni precompilate in modo appropriato

A parte questo, se stai parlando di tempi di costruzione di 2 ore, spesso c'è anche una soluzione semplice, economica (in una visione generale):

  • Aggiorna il tuo hardware per aiutare a ridurre i tempi di calcolo

Altri suggerimenti

Se installi IncrediBuild su ogni macchina che deve costruirlo, distribuisce il processo di compilazione tra tutti delle macchine. Se vuoi davvero solo lanciare l'hardware al problema, puoi impostare alcune macchine dedicate che fungono solo da client IncrediBuild.

Su una scala diversa, assicurati che ogni progetto abbia intestazioni precompilate configurate correttamente.

Puoi provare il sistema di build distribuito Incredibuild: http://www.xoreax.com/visual_studio. htm

Potresti utilizzare uno strumento come lint per vedere se hai inclusioni ridondanti file nei tuoi progetti c ++.

C'è anche un ottimo articolo su questo argomento su Giochi dall'interno .

Crea più soluzioni per il progetto che includono solo sottoinsiemi rilevanti dei progetti e lascia una super soluzione per le versioni ecc.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top