2 votes

Temps de construction de Visual Studio

Je suis en train de construire une solution avec environ 100 assemblies qui prend un temps considérable à compiler. Je dirais dans l'ordre de quelques minutes par assembly. Ceci est en contraste avec un autre produit également avec plus de 100 assemblies qui prendra des secondes pour passer à travers chacun.

Dans les deux cas, il y a des dépendances complexes et de multiples références et dans le deuxième cas, le projet est en réalité plus grand ce qui ne semble pas logique.

J'ai examiné les fichiers CSPROJ et SLN et je ne vois rien d'évident qui ralentirait la compilation.

Je construis dans la VS2008 Professional Edition.

NB: L'utilisation de scripts NANT qui utilisent MSBUILD.exe fonctionne de manière exponentiellement plus rapide -> Donc quelque chose dans VS cause un ralentissement majeur.

Est-ce que quelqu'un a des suggestions plutôt que de recréer l'ensemble de la solution à partir de zéro?

Merci.

3voto

Jon Skeet Points 692016

Avez-vous quelque chose dans les dépendances qui force de nombreux projets à être reconstruits à chaque fois? Par exemple, si vous avez une étape de pré-construction qui exécute une génération de code, et que tout repose sur ce projet, cela pourrait être un problème. Je suis tombé dans cette situation il y a un moment - en faisant en sorte que le générateur de code remarque quand ses entrées n'ont pas changé, et ne réécrire la sortie que dans de tels cas, a sauvé beaucoup de temps.

À part ça, avez-vous vraiment besoin de 100 projets dans la même solution? Cela va être assez lent quoi que vous fassiez, je pense. Je vous conseille soit d'essayer de fusionner des projets (j'ai vu diverses situations où les gens avaient beaucoup de petits projets - les fusionner a vraiment aidé) soit de diviser la solution unique en plusieurs.

EDIT: Une chose que vous pourriez essayer pour exclure la partie GUI de Visual Studio de l'équation est de le construire avec msbuild à partir de la ligne de commande, sans que VS soit ouvert du tout.

3voto

Grant Points 2878

Découvert que les fichiers du projet faisaient référence à des chemins réseau au lieu de chemins locaux. Le changement de ces valeurs a ramené le temps de construction à la normale. Merci à tous ceux qui ont répondu.

2voto

Ron Harlev Points 4923

Peut-être utiliser un outil comme FileMon pour surveiller ce que VS écrit / lit pendant qu'il retard. Peut-être que cela vous donnera un indice. Je l'ai trouvé très utile pour comprendre ce que font les applications (en supposant qu'il y ait une activité d'E/S à surveiller)

0voto

onedozenbagels Points 1192

Avez-vous des plug-ins Visual Studio qui pourraient faire quelque chose comme indexer les fichiers lors de la construction?

Avez-vous défini les options pour utiliser tous les processeurs disponibles sur votre machine?

D'autres processus s'exécutent-ils sur votre machine qui pourraient voler des cycles CPU ou monopoliser le disque dur? Vous pouvez utiliser le Gestionnaire des tâches ou Process Explorer pour les rechercher.

0voto

Jonathan Parker Points 4206

La solution lente comporte-t-elle beaucoup de fichiers/projets ASP.NET? Il semble que la compilation des prenne toujours plus de temps que le pur C#/VB

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X