Question

Une application existante sur laquelle je travaille actuellement nécessite environ 2 heures. Le projet compte environ 170 projets, dont 150 en C ++ non géré et les 30 autres en C # .Net 2.0.

Quelles sont quelques suggestions pour améliorer les temps de construction de quelque chose comme ça?

Était-ce utile?

La solution

Concentrez-vous sur les projets C ++ - il est presque certain qu’ils seront les plus gros drains de temps pour la construction.

Quelques conseils pour réduire les temps de génération C ++:

  • Assurez-vous d'inclure uniquement les en-têtes dont vous avez besoin dans les projets C ++!
  • Utilisez les déclarations en aval autant que possible dans les en-têtes au lieu d'inclure d'autres en-têtes
  • Utilisez le commutateur / MP pour construire en parallèle, si possible
  • Utiliser efficacement l'abstraction
  • Faites preuve de parcimonie dans l'utilisation des fonctions inline, car celles-ci coûtent plus cher au moment de la compilation
  • Corrigez les dépendances afin de ne pas construire plus souvent que nécessaire
  • Utilisez les en-têtes précompilés de manière appropriée

Hormis cela, si vous parlez en 2 heures, il existe souvent une solution simple et peu coûteuse (dans l’ensemble):

  • Mettez à niveau votre matériel afin de réduire les temps de calcul

Autres conseils

Si vous installez IncrediBuild sur chaque ordinateur devant le construire, il répartit le processus de construction entre tous. des machines. Si vous voulez vraiment vous attaquer au problème, vous pouvez configurer quelques machines dédiées qui servent uniquement de clients IncrediBuild.

Sur une autre échelle, assurez-vous que tous les projets ont des en-têtes précompilés correctement configurés.

Vous pouvez essayer le système de construction distribué Incredibuild: http://www.xoreax.com/visual_studio. htm

Vous pouvez utiliser un outil tel que lint pour voir si vous avez inclus l'inclusion redondante. des fichiers dans vos projets c ++.

Il existe également un excellent article sur ce sujet à l'adresse Les jeux de l'intérieur .

Créez plusieurs solutions pour le projet, qui n'incluent que des sous-ensembles pertinents des projets et laissez une super solution pour les versions, etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top