Construire une machine Visual Studio rapide

28

Je veux construire un PC pour exécuter Visual Studio très rapidement. J'ai environ 30 projets C # qui incluent des services WCF, des services Web IIS. Donc pour moi, cela signifie rapidement des cycles d'édition, de compilation, d'exécution et de débogage rapides.

Comment dois-je équilibrer mon investissement dans la puissance du processeur, la mémoire et la technologie de disque, lors de la construction d'une machine à mes fins?

Phillip Ngan
la source

Réponses:

19

Notre équipe de développement utilise un matériel VRAIMENT rapide ... 6 000 $ + par machine de développement en janvier 2010.

La PLUS GRANDE différence qu'un composant a fait pour nous (nous avons testé une chose à la fois) était d'ajouter des E / S très rapides et de mettre tout notre code source sur ce matériel. Nous avons traversé environ 10 configurations différentes (divers RAID avec VRaptors, SSD, etc.) et le meilleur élément que nous avons trouvé était le lecteur IOXtreme de Fusion IO.

http://www.fusionio.com/products/ioxtreme/

Vous aurez besoin de beaucoup de RAM car le pilote "verrouille" la RAM en plus grande quantité, plus la taille de votre bloc formaté est petite sur le disque.

Ces mauvais garçons sont non volatils et SUPER rapides à la fois en lecture et en écriture aléatoires. Pour l'argent, nous n'avons pas pu obtenir nos plates-formes pour compiler plus rapidement.

Je vais chronométrer une compilation très rapidement pour vous donner une idée ...

OK, notre solution Master avec TOUT le code compte actuellement 37 projets, et un total de 92 281 lignes de code "exécutable" selon les résultats des métriques de code Visual Studio. Le compiler avec les paramètres du développeur DEFAULT C # dans l'EDI (juste recharger tous les paramètres pour que vous puissiez comparer objectivement avec les valeurs par défaut si vous le souhaitez) prend 22 secondes. Sur une machine identique avec 3 Velociraptors en RAID 5 prend 29 secondes, soit une augmentation d'environ 24%.

Ce test a été exécuté avec CLEAN SOLUTION suivi de REBUILD SOLUTION, donc cela aurait dû être une compilation complète.

Je ne sais pas pour vous tous, mais je compile fréquemment après de petits à moyens changements. Probablement en moyenne 80 à 100 fois par jour. Cela signifie que JUSTE le lecteur IOXtreme me fait gagner 9,3 minutes par jour. À 70 $ par heure (notre taux moyen de développement, environ), soit 10 $ par jour, par développeur. Donc, la chose prend environ 90 jours pour se payer. Pas mal vraiment ... ils sont gratuits à ce stade.

De plus, je pense vraiment que les temps de compilation ne doivent jamais dépasser le seuil de distraction d'un développeur. Faites-moi patienter 2 minutes ... sur Wiki ou Google ou Youtube en perdant du temps. C'est beaucoup plus difficile à mesurer.

OK, donc toutes les plates-formes ressemblent à ceci:

Windows 7 Professionnel 12 Go de RAM 2x Xeons quadricœurs (E5504) à 2,00 GHz. 8 GHz au total par machine. Serveur de contrôleurs RAID Highpoint 2320 Mobo (j'ai oublié le modèle, désolé) 3x Velociraptors en RAID 5, répartis en lecteurs C, D et E. Windows sur C, programmes sur D, dossiers de données utilisateur sur E. IO Xtreme Drive comme lecteur F. Tout le code (les nôtres et les DLL tierces) est sur le lecteur F.

Bonne chance à tous!

Eric Burcham
la source
Excellent ... le lien vers cette gamme de produits est maintenant rompu ... les entreprises technologiques ne comprennent pas comment fonctionne le Web!
mike nelson
1
Comment cela a-t-il changé au cours des 6 dernières années? Avez-vous de nouveaux produits à recommander? Je suppose que le prix a considérablement baissé maintenant.
TWilly
La machine coûte 6 000 $ et économise 10 $ par jour. Comment obtenez-vous une période de récupération de 90 jours?
mga911
2
+1 pour le commentaire sur "seuil de distraction" - la perte de productivité qui en résulte peut être un énorme coût inattendu lorsque les temps de compilation ralentissent.
peterflynn
17

Il y a une question similaire ici: quels composants PC ont le plus grand impact sur vos temps de compilation pour Visual Studio .

Le plus gros goulot d'étranglement sera le lecteur de disque lors des générations dans Visual Studio. Depuis Visual Studio 2008, vous pouvez également profiter de plusieurs processeurs ou de plusieurs cœurs lors de vos builds. Si c'était moi, j'irais avec ce qui suit:

  • Plateforme Core I7
  • 6+ Go de RAM
  • Windows 7 64 bits (c'est plus rapide que Vista )
  • Un disque SSD rapide
  • Aucun logiciel antivirus actif en cours d'exécution pendant votre build!

Lectures complémentaires:

cowgod
la source
+1 pour une réponse claire, mais ne prenez pas n'importe quel i7, prenez les nouveaux!
Ivo Flipse le
Qu'en est-il de plusieurs disques - un pour l'O / S, un pour les «Program Files», un pour «build»? Le SSD battrait-il toujours cela?
JBRWilkinson
@JBRWilkinson Oui, le SSD est le disque le plus rapide du marché, à condition d'en avoir le bon.
cowgod
3

J'utilise un ramdrive, de Dataram . Visual Studio n'utilise pas tous mes cœurs de PC (8 cœurs), j'ai donc formaté le ramdrive avec NTFS et activé la compression. Le code source a un taux de compression élevé, donc un ramdrive de 2 Go donne au moins 4 Go de stockage. Vous pouvez également activer la sauvegarde automatique de ramdrive! Cette méthode vous donne le IO le plus rapide, encore plus rapide que le SSD. Cependant, vous remarquerez que lorsque l'IO n'est pas le goulot d'étranglement, VS est très pauvre en utilisation multi-cœurs.

Amir Rezaei
la source
Est-ce vraiment un si bon résultat?
Anirudha Gupta
1
Je l'ai testé et je n'ai pas pu mesurer de différence pertinente avec un SSD
thumbmunkeys
@thumbmunkeys J'utilise Primocache et c'est enregistrer le disque lorsque j'arrête mon PC. Tout lire et écrire fait en RAM.
Anirudha Gupta
@GuptaAnirudha est-il plus rapide qu'un SSD?
thumbmunkeys
1
Mon studio visuel fonctionne plus rapidement qu'avant, la première lecture est effectuée à partir du disque, donc ce n'est pas rapide la première fois, mais si vous exécutez le même projet au cours des 5 à 6 dernières heures, vous pouvez voir la différence.
Anirudha Gupta