Erstellen einer schnellen Visual Studio-Maschine

28

Ich möchte einen PC bauen, um Visual Studio sehr schnell auszuführen. Ich habe ungefähr 30 C # -Projekte mit WCF-Diensten und IIS-Webdiensten. Schnell bedeutet für mich also schnelles Bearbeiten, Kompilieren, Ausführen und Debuggen von Zyklen.

Wie sollte ich meine Investition in CPU-Leistung, Arbeitsspeicher und Laufwerkstechnologie ausgleichen, wenn ich eine Maschine für meine Zwecke baue?

Phillip Ngan
quelle

Antworten:

19

Unser Entwicklerteam verwendet WIRKLICH schnelle Hardware ... ab 6.000 USD pro Entwickler-Maschine ab Januar 2010.

Der GRÖSSTE Unterschied, den eine Komponente für uns gemacht hat (wir haben jeweils eine Sache getestet), bestand darin, wirklich schnelle E / A hinzuzufügen und unseren gesamten Quellcode auf diese Hardware zu schreiben. Wir haben ungefähr 10 verschiedene Konfigurationen durchlaufen (verschiedene RAIDs mit VRaptors, SSDs, usw.) und das beste Produkt, das wir uns einfallen ließen, war das IOXtreme-Laufwerk von Fusion IO.

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

Sie benötigen viel RAM, da der Treiber RAM in größeren Mengen "sperrt", je kleiner Ihre formatierte Blockgröße auf dem Laufwerk ist.

Diese bösen Jungs sind nicht flüchtig und bei Random Reads und Writes SUPER schnell. Für das Geld konnten wir unsere Rigs nicht schneller kompilieren lassen.

Ich werde mal ganz schnell eine Zusammenstellung machen, um dir eine Idee zu geben ...

OK, unsere Master-Lösung mit ALLEM Code enthält derzeit 37 Projekte und insgesamt 92.281 Zeilen "ausführbaren" Code gemäß den Visual Studio-Code-Metrik-Ergebnissen. Das Kompilieren mit den DEFAULT C # -Entwicklereinstellungen in der IDE dauert 22 Sekunden. Auf einem identischen Rechner mit 3 Velociraptoren in RAID 5 dauert das 29 Sekunden, also ca. 24% mehr.

Dieser Test wurde mit CLEAN SOLUTION ausgeführt, gefolgt von REBUILD SOLUTION. Es hätte also eine vollständige Kompilierung sein müssen.

Ich kenne Sie nicht alle, aber ich kompiliere häufig nach kleinen bis mittleren Änderungen. Wahrscheinlich durchschnittlich 80-100 Mal pro Tag. Das bedeutet, dass ich mit dem IOXtreme-Laufwerk NUR 9,3 Minuten pro Tag einsparen kann. Bei 70 US-Dollar pro Stunde (ungefähr unsere durchschnittliche Entwicklerrate) sind das 10 US-Dollar pro Tag und Entwickler. Es dauert also ungefähr 90 Tage, bis sich das Ding bezahlt macht. Nicht schlecht wirklich ... sie sind zu diesem Zeitpunkt frei.

Außerdem bin ich WIRKLICH der festen Überzeugung, dass die Kompilierungszeiten niemals über die Ablenkungsschwelle eines Entwicklers steigen dürfen. Lass mich 2 Minuten warten ... In auf Wiki oder Google oder Youtube Zeit verschwenden. Das ist viel schwerer zu messen.

OK, also die ganzen Rigs sehen ungefähr so ​​aus:

Windows 7 Professional 12 GB RAM 2x Quad Core Xeons (E5504) bei 2,00 GHz. Insgesamt 8 GHz pro Maschine. Highpoint 2320 RAID Controller Server Mobo (Ich habe das Modell vergessen, sorry) 3x Velociraptors in RAID 5, aufgeteilt in C-, D- und E-Laufwerke. Windows auf C, Programme auf D, Benutzerdatenordner auf E. IO Xtreme-Laufwerk als Laufwerk F. Der gesamte Code (unsere DLLs und DLLs von Drittanbietern) befindet sich auf Laufwerk F.

Viel Glück euch allen!

Eric Burcham
quelle
Großartig ... der Link zu dieser Produktreihe ist jetzt unterbrochen ... Technologieunternehmen verstehen nicht, wie das Web funktioniert!
Mike Nelson
1
Wie hat sich das in den letzten 6 Jahren verändert? Irgendwelche neuen Produkte, die Sie empfehlen würden? Ich gehe davon aus, dass der Preis jetzt deutlich gesunken ist.
TWilly
Die Maschine kostet 6.000 USD und spart 10 USD pro Tag. Wie kommt man zu einer Amortisationszeit von 90 Tagen?
mga911
2
+1 für den Kommentar zur "Ablenkungsschwelle" - die daraus resultierende Produktivitätsverschlechterung kann zu enormen unerwarteten Kosten führen, wenn die Kompilierungszeiten langsamer werden.
Peterflynn
17

Es gibt eine ähnliche Frage hier: Welche PC - Komponenten den größten Einfluss auf Ihren Kompilierungszeiten für Visual Studio machen .

Der größte Engpass wird das Festplattenlaufwerk sein, wenn Builds in Visual Studio ausgeführt werden. Ab Visual Studio 2008 können Sie während der Erstellung auch mehrere Prozessoren oder mehrere Kerne nutzen. Wenn ich es wäre, würde ich Folgendes tun:

  • Core I7-Plattform
  • 6+ GB RAM
  • Windows 7 64-Bit ( schneller als Vista )
  • Ein schnelles Solid-State-Laufwerk
  • Während Ihres Builds wird keine aktive Antivirensoftware ausgeführt!

Weitere Lektüre:

Cowgod
quelle
+1 für eine klare Antwort, aber nimm nicht nur einen i7, sondern die neuen!
Ivo Flipse
Was ist mit mehreren Laufwerken - eines für das Betriebssystem, eines für "Programme", eines für "Build"? Würde die SSD das noch schlagen?
JBRWilkinson
@JBRWilkinson Ja, SSD ist die schnellste Festplatte auf dem Markt, vorausgesetzt, Sie erhalten die richtige.
Cowgod
3

Ich benutze ein RAM-Laufwerk von Dataram . Visual Studio verwendet nicht alle meine PC-Kerne (8 Core). Daher habe ich das RAM-Laufwerk mit NTFS formatiert und die Komprimierung aktiviert. Der Quellcode hat eine hohe Komprimierungsrate, sodass ein RAM-Laufwerk von 2 GB mindestens 4 GB Speicherplatz bietet. Sie können auch die automatische Speicherung des RAM-Laufwerks aktivieren! Mit dieser Methode erhalten Sie die schnellste E / A, sogar schneller als mit SSD. Sie werden jedoch feststellen, dass VS bei der Verwendung von Multi-Cores sehr schlecht ist, wenn das E / A nicht der Engpass ist.

Amir Rezaei
quelle
Ist das wirklich ein so gutes Ergebnis?
Anirudha Gupta
1
Ich habe es getestet und konnte keinen relevanten Unterschied zu einer SSD messen
thumbmunkeys
@thumbmunkeys Ich verwende Primocache und speichere die Festplatte, wenn ich meinen PC herunterfahre. Alles Lesen und Schreiben im RAM.
Anirudha Gupta
@ GuptaAnirudha ist es schneller als eine SSD?
Thumbmunkeys
1
Mein visuelles Studio arbeitet schneller als zuvor. Der erste Lesevorgang wird von der Festplatte ausgeführt, sodass dies beim ersten Mal nicht schnell ist. Wenn Sie jedoch dasselbe Projekt aus den letzten 5 bis 6 Stunden ausführen, können Sie den Unterschied feststellen.
Anirudha Gupta