2010-10-18 5 views
4

En parlant de langages compilés (C# dans mon cas) je pense que ce problème restera toujours, peu importe la performance de votre machine de développement. Le temps de construction pourrait être plus ou moins dépendant de l'environnement concret, mais il suffit souvent de faire passer votre attention de votre tâche à quelque chose d'autre comme stackoverflow, youtube, twitter etc. et c'est juste très ennuyeux. Je suis content pour les développeurs java en raison du chargement dynamique des classes de Java, mais que peuvent faire les développeurs .net (et autres) pour rendre le processus de construction moins pénible et envahissant?Bâtiment prend beaucoup de temps. Comment se battre avec ça?

+0

Ne pensez pas que Java soit toujours bien meilleur. J'ai travaillé dans un magasin Java pour une grande banque internationale et les builds ont pris 3+ heures dans certains cas. L'herbe n'est pas toujours plus verte .... – bpeterson76

+1

Quelque chose de plus de 10 secondes et j'ai oublié pourquoi je construisais en premier lieu. Obtenez une machine plus rapide, des projets plus petits, plus de bibliothèques, etc. – Seth

+2

SSD (disque SSD) offre des améliorations jusqu'à 10 fois, en fonction de la taille de votre projet. En outre, le processeur ne sera pas gaspillé si vous améliorez cela. Je sais, c'est l'approche «utiliser plus gros marteau», mais cela fonctionne vraiment. Après une mise à niveau, je 1) charge VS2008, 2) charge le projet 3) fais reconstruire complet dans le temps que la configuration précédente était capable de faire l'étape 1 et certains de 2 –

Répondre

1

La remarque dans votre question au sujet de l'attention vagabonder-tâche m'a rappelé this Joel on Software post.

donc investir dans des disques à l'état solide (puisque je suppose que vous parlez du processus de construction sur une boîte de dev tout vous développez et déboguez) pourrait aider. En outre, rendre votre ordinateur plus rapide en général ne peut pas faire de mal, non? :)

8

Nous utilisons plusieurs configurations de construction pour faire un compromis entre la vitesse et une construction complète.

Une génération complète fait des choses qui prennent du temps comme l'analyse cop FX, compilation ASP.NET, tous les projets de tests unitaires, Entity Framework vue avant génération, etc.

une « construction rapide » prend généralement que quelques-uns secondes et ceux le strict minimum nécessaire pour faire fonctionner le projet.

Les développeurs basculent entre la génération complète et la génération rapide tout au long de leur flux de production, selon les besoins.

1

En plus de nombreuses autres suggestions pour obtenir une machine plus rapide, supprimer des projets inutiles de votre solution, etc., envisagez Visual Studio 2010 + une machine multicœur. VS2010 peut tirer parti de tous vos cœurs lors de la construction. Découvrez this thread pour plus d'informations sur la façon de configurer cela.

+0

Je ne sais pas si VS2010 profite de tous les cœurs, mais la construction est terriblement lente sur ma machine pour les projets WPF, même relativement petits (Core Duo 3GHz et 4 Go de RAM). –

4

Les fichiers de classe ne doivent-ils pas être compilés également? Ne serait-ce pas simplement mettre la charge de travail à l'exécution en contraste avec le temps de compilation? Ce n'est pas vraiment une différence n'est-ce pas? Plus le logiciel est gros, plus le temps de construction est long, en fonction de la machine et non du langage ou du framework. C'est le compromis pour des choses comme le typage fort, le code octet interprété (ou le code binaire selon le langage/compilateur) au lieu du code source interprété à chaque exécution (comme vous avez avec php et python etc). Je ne pense pas que java améliore beaucoup les choses, il y aura une période de temps pour construire votre application.

Je pense que par rapport à C et C++, C# et java se sont considérablement améliorés du point de vue de la compilation.

Il suffit d'utiliser le temps pour se relâcher:

Compiling

source

+0

Image supérieure :) –

3

Quelques choses à essayer:

  1. Défragmenter le lecteur contenant votre code source

  2. Excl Ude vos dossiers de code source du scanner de virus

  3. Exclure vos dossiers de code source de Windows Search indexeur

  4. Désactiver toutes les extensions Visual Studio que vous n'utilisez pas

1

Faites-vous un reconstruire tout à chaque fois ou avez-vous tout dans le même assemblage? Je travaille avec de très gros projets et mon temps de construction n'est pas très élevé. J'ai eu plusieurs assemblées et je n'en modifie que quelques-unes chaque fois que je fais des changements au projet.

Si vous vous trouvez en train de modifier des assemblages partout, vous pouvez essayer de refactoriser votre structure de code. Ou peut-être que vous n'avez pas pris le temps de faire des tests unitaires? Ils ne vous aident pas seulement avec le test, mais pour obtenir une meilleure structure de code (difficile de tester des applications avec un design moche).

Une autre alternative est d'utiliser des outils qui accélèrent construit, par exemple: http://www.xoreax.com/

1

Je travaille sur de très grands projets C# et ont rarement vu Debug construire fois dépasser 2 minutes. Ce qui est généralement fastidieux, c'est l'analyse statique (ex: fxcop), les tests unitaires, la signature de code (si vous utilisez un service de code), etc. Le plus simple est de les limiter aux versions libérées ou pour avoir une définition de construction distincte pour 'Construction complète' et exclure ces étapes de vos versions Debug et Release.

Si ce ne sont pas vos problèmes, regardez les performances de votre ordinateur comme d'autres l'ont dit. Fragmentation, disques de construction lents, anti-virus, etc.

Questions connexes