6
votes

Le bâtiment prend beaucoup de temps. Comment combattre avec ça?

parler de langues compilées (C # dans mon cas), je pense que ce problème resterait toujours, peu importe la performance de votre machine de développement. La durée de construction pourrait être plus ou moins en fonction de l'environnement concrète, mais souvent, il suffit de faire votre attention que vous voulez passer de votre tâche à quelque chose d'autre comme Stackoverflow, YouTube, Twitter, etc. Et c'est très gênant.

Je suis heureux pour les développeurs de Java en raison de la chargement de la classe dynamique de Java, mais de ce que font les développeurs .NET (et d'autres) pour rendre le processus de construction moins douloureux et objectant?


7 commentaires

Ne pensez pas que Java soit toujours beaucoup mieux. J'ai travaillé dans une boutique Java pour une grande banque internationale et ses constructions ont pris 3 heures dans certains cas. L'herbe n'est pas toujours plus verte ....


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., etc.


SSD (disque d'état solide) offre une amélioration jusqu'à 10X, en fonction de la taille de votre projet. En outre, la CPU ne sera pas gaspillée si vous améliorez cela. Je sais, c'est «utiliser une approche de marteau plus gros», mais cela fonctionne vraiment. Après une mise à niveau, i 1) charger le projet de charge VS2008, 2) 3) effectuez une reconstruction complète à temps que la configuration précédente a pu faire l'étape 1 et une partie de 2


En fait, j'aurais dû dire "python". La plupart du temps, je n'ai rien à construire du tout - ce qui contribue à ma faible étendue d'attention lorsque je dois utiliser l'une de ces langues Autres .


@Seth dans le contexte de ce problème, j'ai commencé à apprendre Ruby)


@ BPETERSON76 Je veux dire lorsque l'application a lancé il faut un peu de temps pour charger dynamiquement des cours modifiés


Commencez à créer des projets de construction en C ++ et vous apprécierez le temps nécessaire pour construire un projet C #.


7 Réponses :


2
votes

La remarque dans votre question sur l'attention de son attention errant de la tâche me rappelait Ceci Joel sur la poste logicielle.

Investir donc dans des disques de l'état solide (puisque je suppose que vous parlez du processus de construction sur une boîte de développement pendant que vous développez et du débogage) pourrait aider.

En plus, rendre votre ordinateur plus rapidement en général ne peut pas faire mal, non? :)


0 commentaires

8
votes

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

Une construction complète prend des choses gaspillantes telles que l'analyse des flics FX, la compilation ASP.NET, tous les projets de test unitaires, cadre d'entité Afficher la pré-génération, etc.

Une "construction rapide" ne prend généralement que quelques secondes et le strict minimum nécessaire pour faire fonctionner le projet.

Les développeurs basculent entre la construction complète et la construction rapide tout au long de leur flux de travail, au besoin.


0 commentaires

1
votes

En plus de nombreuses autres suggestions pour obtenir une machine plus rapide, supprimez des projets inutiles de votre solution, etc., envisagez Visual Studio 2010 + une machine multicœur. VS2010 peut tirer parti de tous vos cœurs lorsque vous faites une construction. Découvrez ce fil pour plus sur la façon de la définir.


1 commentaires

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



5
votes

Les fichiers de classe ne doivent-ils pas être construits aussi bien? Cela ne voudrait-il pas simplement mettre la charge de travail à l'exécution du temps en contraste pour compiler le temps? Ce n'est pas vraiment une différence n'est-ce pas? Le plus grand logiciel grandit naturellement, plus il faut le construire, en fonction de la machine et non de la langue ni de la langue - il s'agit du compromis pour des choses comme la typographie forte, le code d'octets interprétés (ou le code binaire en fonction de la langue / du compilateur ) Au lieu d'interpréter le code source à 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 un calendrier que vous devez construire votre application.

Je pense que la comparaison à C et C ++ C # et Java se sont considérablement améliorées sur le compte de la compilation.

Utilisez simplement le temps de relâcher:

compiler

source


0 commentaires

3
votes

Certaines choses à essayer:

  1. défragmenter le lecteur contenant votre code source

  2. excluez vos dossiers de code source du scanner de virus

  3. excluez vos dossiers de code source de l'indexeur de recherche Windows

  4. désactiver toutes les extensions de studio visuelles que vous n'utilisez pas


0 commentaires

1
votes

Faites-vous une reconstruction à chaque fois ou avez-vous tout dans la même assemblée? Je travaille avec des projets assez importants et mon temps de construction n'est pas si élevé. J'ai eu plusieurs assemblées et je ne modifierai que quelques-uns chaque fois que je modifie le projet.

Si vous vous trouvez en modifiant des assemblages partout, vous pouvez essayer de refroidir votre structure de code. Ou peut-être que vous ne vous êtes pas pris le temps de faire des tests unitaires? Ils vous aident non seulement avec les tests, mais pour obtenir une meilleure structure de code (des applications difficiles à tester avec une conception moche).

Une autre alternative consiste à utiliser des outils qui accélérent les constructions, par exemple: http://www.xoreax.com/ < / a>


0 commentaires

1
votes

J'ai travaillé sur de très grands projets C # et j'ai rarement vu des temps de construction de débogage dépassant 2 minutes.

Ce qui suce généralement le temps sont des choses comme une analyse statique (par exemple FXCop), des tests d'unités, une signature de code (si vous utilisez un service de signe de code), etc. Le moyen le plus simple de garder ces sous contrôle est de les limiter à libérer des constructions ou avoir une définition de construction distincte pour «pleine construction» et exclure ces étapes à partir de vos constructions de débogage et de version.

Si ce n'est pas vos problèmes, regardez votre performance informatique, car d'autres ont dit. Fragmentation, disques de construction lentes, antivirus, etc.


0 commentaires