SSD-Laufwerke und Visual Studio IDE. Große Verbesserungen? Echte Nutzungsgeschichten, keine Theorie

91

Ich möchte Windows 7 + Intel SSD-Laufwerke verwenden, um meinen Visual Studio 2008-Entwicklungszyklus zu beschleunigen.

Die Bereiche, die ich beschleunigen möchte, sind:

  • Kompilier- / Erstellungszeiten
  • Dateien für Winforms / Webforms öffnen
  • General Visual Studio "sluggishnes" für Windows und Web

Die Startzeit von Visual Studio interessiert mich nicht. Auch die Kosten pro GB sind kein Problem. Ich will Geschwindigkeit.

Hat jemand dies bereits versucht ( SSD-Laufwerk + Visual Studio ) und was können Sie über die Beschleunigungen / Absenkungen sagen?

Ich kenne die Theorie über SSDs, aber normalerweise liegt der Beweis für den Pudding im Essen. Ich interessiere mich also für Leute, die tatsächlich ein Visual Studio-Setup mit SSD getestet haben ...

Julian de Wit
quelle
Wahrscheinlich lohnt es sich, dies auf serverfault.com zu erfragen. Weitere Informationen finden Sie unter blog.stackoverflow.com/2009/04/server-fault-private-beta-begins .
Matthew Murdoch
2
Ich dachte, es geht mehr um Programmierung, aber ich habe es auf jeden Fall in Betracht gezogen. Ich wollte jedoch keine Benchmarks, sondern echte VS2008-Erfahrung
Julian de Wit
Meinetwegen. Ich habe vorgeschlagen, dass Sie es auch dort gefragt haben (obwohl das einen Flammenkrieg auslösen könnte ...!).
Matthew Murdoch
Wow, es fühlt sich interessant an, eine Frage zu finden, die älter ist als Server Fault und die Beta beendet. Ich suchte nach einigen Vorteilen für 2016 (VS ist allein 80 verdammte Gigs und meine zukünftige 128-GB-SSD passt möglicherweise nicht sowohl für Windows als auch für VS ...)
Paul Stelian

Antworten:

79

Ich habe für Visual C harte Daten bekommt # 2008 Die kurze Version ist , dass Sie Ihr Geld ausgeben auf einer schnellere CPU am besten als schneller I / O . Längere Antwort folgt ...

Unsere C # (.NET 3.5) -Lösung enthält 81 Projekte mit mehr als 2 Millionen Codezeilen (einschließlich Kommentaren und Leerzeilen). Vor einigen Jahren haben wir ein Upgrade von Pentium 4 3-GHz-PCs mit Standard-Festplatten auf Core 2 Duo 2,6-GHz-PCs mit 10.000 U / min WD Raptor-Festplatten (74 GB) durchgeführt. Die Beschleunigung war immens. Etwa 10 Minuten bis 3,5 Minuten. All dies in einer 32-Bit-Umgebung von Windows XP Pro mit 4 GB RAM.

Wir haben auch einen Gigabyte i-RAM (google it for information), bei dem es sich im Grunde um eine RAM-Festplatte mit Batterie-Backup handelt. Im Gegensatz zu einer SSD, die schnell liest, aber langsamer schreibt, ist der i-RAM für beide schnell. Wenn Sie jedoch Strom verlieren, hält der Akku nur etwa 12 Stunden, sodass Sie beim Einchecken diszipliniert sein müssen. Dies verkürzte die Kompilierungszeiten auf der Core 2 Dou-Plattform um eine weitere Minute (bis zu 2,5 Minuten) im Vergleich zur Raptor-Festplatte mit 10.000 U / min.

Ich habe seitdem festgestellt, dass diese alten Raptor-Laufwerke mit 74 GB und 10.000 U / min etwas langsamer sind als Ihr modernes Laufwerk mit 7.200 U / min. Und wir haben bewiesen, dass durchgängiges Benchmarking kompiliert wird. Wir haben die neuen Velociraptoren noch nicht ausprobiert, aber sie wären sicherlich schneller, aber wahrscheinlich nicht genug, um sie allein für Kompilierungszeiten wert zu sein.

Letzte Woche haben wir eine neue Intel Core i7-870-Plattform mit einer G.Skill Falcon 128 GB SSD (mit dem Indilix Barefoot-Controller) und einer Standard 500 GB HDD als zweitem Laufwerk erhalten. Ich habe auch den i-RAM in diesen PC gesteckt und alle Konfigurationen getestet.

Im Vergleich zum Core 2 Duo, das in 3,5 Minuten für die Festplatte und 2,5 Minuten für den i-RAM kompiliert wurde, kompiliert der i7-870 in 1 Minute und 40 Sekunden für die SSD, die Festplatte und den i-RAM 3 Sekunden.

Beide Male, wenn wir Entwickler-Workstations aktualisiert haben, ist der überwiegende Teil der Leistungsverbesserung in C # -Kompilierungszeiten auf eine schnellere CPU als auf eine schnellere Festplatte zurückzuführen. Wenn Sie die Kompilierungszeiten beschleunigen möchten, stecken Sie Ihr Geld in die CPU und nicht in die Festplatte.

Die SSD ist jedoch viel schneller zum Laden von Visual Studio und zum Öffnen einer Lösung (obwohl ich dafür keine Zeitangaben habe). Wenn Sie sich eine SSD leisten können, werden Sie nie zurückkehren, da jedes Programm auf Ihrem PC so viel schneller geladen wird, dass es unglaublich ist. Aber es wird Ihre Kompilierungen nicht wesentlich beschleunigen. Und das mit Visual Studio C # als Single-Thread. Wenn Microsoft jemals zusammenarbeiten und den Compiler in der IDE mit mehreren Threads erstellen würde, könnten wir diese vier Kerne tatsächlich verwenden ...


Update Mai 2012: Wir haben unsere PCs jetzt erneut aktualisiert und basieren auf dem, was wir gelernt haben, bevor wir uns auf die CPU-Leistung konzentriert haben. Die neuen PCs verfügen über Intel Core i7-2600k-CPUs, die auf 4,6 GHz übertaktet sind, mit einer 120-GB-SATA-III-SSD der Intel 510-Serie, 16 GB RAM und einem großen CPU-Kühler! Überraschenderweise hat dies die Kompilierungszeit fast halbiert , und ich habe dies sicherlich eher auf die sehr starke Steigerung der CPU-Leistung als auf die schnellere SSD zurückgeführt.

Die Ergebnisse der C # -Kompilierung in Visual Studio 2010 waren:

  • 159 Sekunden: Intel Core i7-870 (2,9 - 3,3 GHz), 4 GB RAM mit SATA II SSD
  • 109 Sekunden: Intel Core i7-2600k (3,4 - 3,8 GHz) 16 GB RAM mit SATA III SSD
  • 84 Sekunden: Intel Core i7-2600k übertaktet (4,63 GHz) 16 GB RAM mit SATA III SSD
Ben Robbins
quelle
1
Danke. Schade, dass ich bereits einen SDD-Monstercomputer bestellt habe :) Ich werde meine Ergebnisse auch hier veröffentlichen, aber ich fürchte, sie werden die gleichen Ergebnisse sein.
Julian de Wit
Haben Sie übrigens ASP.NET oder Winforms gemacht?
Julian de Wit
9
Ok - ich muss viel korrigieren: Erstens - Sie haben nicht erwähnt, welche SSD Sie verwendet haben. SSD-Laufwerke stellen eine direkte Verbindung zu einer SATA2-Schnittstelle her, dh iRAM ist SATA1 (130 MB / s). Außerdem hat der iRAM einen begrenzten Controller, der den Punkt besiegt. Wenn Sie 2 in RAID 0 hatten, sollten Sie Geschwindigkeiten von bis zu 200 MB / s erreichen. Ich bin damit einverstanden, dass eine SSD Ihre Kompilierungszeiten nicht verbessert, aber ich habe gesehen, dass SSDs Visual Studio in etwa einer Sekunde geöffnet hat. Schließlich glaube ich nicht, dass der iRAM als typisches SSD-Laufwerk qualifiziert ist. Ihre Ergebnisse sind irreführend und die Fakten sind falsch.
JL.
13
Sie müssen lesen und möglicherweise nachdenken, bevor Sie tippen. Erstens habe ich die SSD erwähnt, die ich verwendet habe, tatsächlich ist sie fett gedruckt . Ich weiß, dass der iRAM eine SATA1-Schnittstelle hat und daher für Lesevorgänge langsamer ist als fast alle neuen SSDs. Ich habe ihn aufgenommen, weil ich einen testen musste und weil er für Schreibvorgänge genauso schnell ist wie für Lesevorgänge, was die meisten SSDs nicht sind. Ich habe nicht mit 2 in RAID getestet, weil ich nur 1 hatte! Ich habe im letzten Absatz auch erwähnt, dass die SSD zum Laden von VS viel schneller ist. Die Fakten sind also alle korrekt und die Ergebnisse, denen Sie zustimmen, aber Sie sagen, dass sie irreführend sind? Interessant ...
Ben Robbins
1
@BenRobbins Haben Sie Ihr C # -Projekt außerhalb von VisualStudio mit dem Flag / MP verglichen?
John Zabroski
27

Ich habe gerade eine gekauft und das einzige Bedauern, das ich habe, ist, keine SSD früher zu kaufen.

Die Kompilierungszeiten waren schon früher in Ordnung, aber jetzt reagiert die gesamte IDE viel schneller. Und es ist nicht nur Visual Studio, sondern auch andere Anwendungen. Es ist einfach viel einfacher, im Fluss zu bleiben, wenn das gesamte System so schnell arbeitet.

Adrian Grigore
quelle
4
Nach einigen Monaten habe ich das gleiche Gefühl. Die gesamte Computererfahrung ist besser.
Julian de Wit
11

Als Test haben wir gerade eine 90 GB Sandforce-basierte SSD bestellt, um zu sehen, ob dies unsere Build-Zeiten verbessern kann. Wir haben ein großes C ++ - Projekt, dessen vollständige Wiederherstellung 21 Minuten dauert (eine ältere Xeon 3,4-GHz-Box).

Bei jeweils drei Tests war der Zeitunterschied bei den Builds vernachlässigbar. in der Größenordnung von 30 Sekunden schneller.

Unsere neuere (!) Xeon 5150-Box (mit Festplatte) erstellt dasselbe Projekt in ~ 11 Minuten neu, was zeigt, dass das Kompilieren wirklich CPU-gebunden ist.

(Dies überraschte mich, da ich dachte, dass die beeindruckende 4k- und 512k-Lese- / Schreibleistung einer SSD in Builds sehr vorteilhaft wäre.)

Benutzer528764
quelle
11

Nach langen Leistungstests habe ich hier das beste Setup bekommen, aber für einen C ++ - Compiler. Du wirst brauchen:

  • SSD für Windows und Programmdateien (normalerweise das Laufwerk C:)
  • 1 TB WD Caviar Black in zwei Partitionen:
    • Laufwerk D: Ein winziges Laufwerk (max. 35 GB) an den Startzylindern mit nur einem TEMP-Ordner. Sie sollten Ihre TMP- und TEMP-Umgebungsvariablen D: \ TEMP zuordnen (diese ist wirklich wichtig !!!)
    • Laufwerk E: mit dem Rest des Laufwerkspeichers; Verwenden Sie diese Option für die allgemeine Datenspeicherung, mit Ausnahme der Softwareentwicklung
  • 1 TB WD Caviar Black in jedem Partitionslayout, in dem Sie Ihre Visual Studio 2008-Projekte / -Lösungen speichern möchten. Aufgrund der Verwendung von Subversion hatte ich vier Partitionen:
    • 820 GB für Trunk- und Allzweckprojekte
    • 60 GB für einen "Feature-Zweig"
    • 60 GB für einen "stabilen Zweig", der während der Produktstabilisierung verwendet wird
    • 60 GB für einen "Produktqualitätszweig", der für kleinere Korrekturen an zugelassener Software verwendet wird
  • 6-Kern- oder 8-Kern-Prozessor mit / MP-Compiler-Schalter (nicht verwechseln mit der nativen "Parallel Project Build" -Funktion von Visual Studio 2008 - ich weiß nicht, warum der AMD Phenon II-Prozessor so gut funktioniert diese Kombination)
  • Windows 7 64-Bit (Ich bin mir nicht ganz sicher, warum es in einem 64-Bit-Betriebssystem schneller läuft, selbst wenn ein 32-Bit-Compiler verwendet wird).
  • SATA 3-kompatibles Mainboard

Dieses Setup übertrifft jede andere Kombination, die ich getestet habe.

Eine typische Zusammenstellung eines großen modularen Projekts führt zu folgenden Ergebnissen:

  • Paralleler Aufbau ohne / MP und normale Festplatten: ca. 12:00 Minuten
  • Dieses vorgeschlagene Setup: 4:30 Minuten
  • Dieses Setup verwendet jedoch abwechselnd WD Caviar Green-Laufwerke: +1: 00 pro Laufwerk (5:30 oder 6:30 für beide)
  • Verschieben der TEMP-Partition auf ein RAMDRIVE: 5:30

Meine Schlussfolgerungen sind folgende:

  • Lassen Sie den TEMP-Ordner nicht in SSD laufen, da sie schlechte "Writer" sind und keinen vergleichbaren 64-MB-Cache in WD Caviar Black haben
  • Wenn Sie ein dediziertes Laufwerk verwenden, das als TEMP fungiert, können beide WD-Laufwerke parallel arbeiten: das TEMP für temporäre Dateien von cl.exe und das Projektlaufwerk zum Speichern von * .cpp / h, * .obj, * .lib, * .exe usw.
  • Die Caching-Algorithmen von WD Caviar Black sind beeindruckend und übertreffen in Kombination mit SATA 6 GB / s ein RAMDRIVE-Setup, das ich für das TEMP-Laufwerk getestet habe
  • Durch die Partitionierung werden die Auswirkungen auf die Fragmentierung verringert, die in einer Compilerumgebung unvermeidlich sind. Gleiches gilt auch für das TEMP-Laufwerk

Ich hoffe, ich konnte dir helfen.

Mathias A. Gruber
quelle
1
Ich habe vergessen zu sagen, dass der SATA-Modus im AHCI-Modus sein sollte.
Mathias A. Gruber
1
Ich bin mir jedoch nicht sicher über den TEMP-Ordnerteil. Warum sagen Sie, dass SSDs "schlechte Autoren" sind? Die integrierte Cache-Größe ist normalerweise größer als 64 MB (Vertex 4 wird mit einem DRAM-Cache von 512 MB geliefert, bei größeren Laufwerken bis zu 1 GB). Und deine schlechten RAMDRIVE-Erfahrungen sind wirklich seltsam. Wie groß war es? Wo befand sich Ihre Auslagerungsdatei? Sind Sie sicher, dass es nicht auf die Festplatte übertragen wurde? Der durchschnittliche DDR2-RAM hat die 10-fache Bandbreite von SATA 6 GB, ganz zu schweigen davon, dass Windows selbst RAM-Caching für Festplattenschreibvorgänge ausführt. Und das ist nicht einmal RAID, von dem Sie sprechen.
Groo
5

Ich habe gerade einen Laptop auf SSD aktualisiert, indem ich die ursprüngliche Festplatte mit 5400 U / min geklont habe (überraschenderweise ein schmerzloser Vorgang). Ich habe eine Stoppuhr verwendet, um vor und nach Metriken zu erfassen. (Dell Inspiron 1525, 3 GB RAM, Windows Vista 32-Bit)

Booten / Starten von Windows

63 Sekunden -> 52 Sekunden

Laden meiner ASP.NET Visual Studio-Lösung

Mit anderen Worten, die Zeit vom Klicken auf die SLN-Datei bis zum vollständigen Laden von Visual Studio und dem Codieren. Ich habe dies einmal durchgeführt, bevor ich Messungen durchgeführt habe, da das erste Mal immer länger dauert als die nachfolgenden Zeiten.

16 Sekunden -> 8 Sekunden.

Debuggen

F5 auf die Homepage voll geladen.

5 Sekunden -> 3,5 Sekunden

James Lawruk
quelle
1
Sie haben nur 21% Ihrer Startzeit gespart, indem Sie von 5400 U / min auf SSD umgestiegen sind? Sie sollten einen viel größeren Nutzen daraus sehen. Vielleicht haben Sie nicht genug RAM in Ihrem Laptop?
Brian Kendig
@Bria Kendig Danke, das darf ich mal probieren. Ich habe derzeit 3 ​​GB, daher kann ich höchstens 4 GB verwenden.
James Lawruk
Ich habe eine wichtige SSD und mein Win7 startet in 15 Sekunden nach dem vollständigen Herunterfahren.
Tunafish24
Wie haben Sie Ihre Festplatte in einem Dell Inspiron-Notebook auf SSD umgestellt?
Karthik Nishanth
Ich habe Klon-Software und kleine Schraubendreher von Amazon gekauft. lawruk.com/blog/40/cloned-laptop-hard-drive-to-an-crucial-ssd
James Lawruk
5

Siehe Joel Spolskys Artikel Solid State Disks (2009-03-27).

Peter Mortensen
quelle
1
Hallo danke, aber ich denke, dass dieser Artikel über ihren eigenen Compiler und nicht VS 2008 war.
Julian de Wit
4

Als ich einen neuen Computer kaufte, war ich mir nicht sicher, was meine Erfahrung schneller machte.

Ein Kollege von mir hat jedoch ein Festplattenlaufwerk mit 7200 U / min gegen eine SSD ausgetauscht. Sofort war Visual Studio (insbesondere das Starten / Debuggen von ASP.NET) mindestens doppelt so schnell!

Julian de Wit
quelle
2

Ich habe auch darüber nachgedacht und vor einiger Zeit eine schnelle SD-Karte gekauft , die ich in den Laptop stecken und vergessen kann, damit Windows Vista die verwenden kann ReadyBoost- Funktion verwenden kann. Das scheint einen Unterschied zu machen, aber es reicht sicherlich nicht aus, um den Kauf eines SSD-Laufwerks zu rechtfertigen.

Ich bekam dann Probleme, wenn ich das tat Subversion- Updates traten , und beschloss, die ReadyBoost-Idee zu verwerfen und das SD-Laufwerk an einem Mount-Punkt zu mounten, an dem ich dann alle meine Projektdateien erstellte. Die SD-Karte ist nicht sehr groß (1 GB), aber sie hat meine Wartezeit für Builds sicherlich verkürzt und das Debuggen ein bisschen schneller gemacht.

Das meiste davon ist subjektiv und ich beantworte eine Frage, die Fakten will, mit "Ich fühle das" und "Ich fühle das". Aufgrund meiner Experimente mit dem Ausführen von Visual Studio-Dateien von einem anderen Laufwerk glaube ich, dass es einen Unterschied machen wird, wie viel und wie viel ich bereit bin, dafür zu bezahlen. Diese Frage suche ich auch sehr nach einer Antwort. Mein Notebook kann ein anderes Festplattenlaufwerk aufnehmen, und ich konnte mich nicht zwischen einer SDD und einem Laptop-Laufwerk mit 7200 U / min entscheiden.

Peter Mortensen
quelle
1
Hallo, danke. Ich hatte ungefähr die gleichen Ergebnisse beim Umschalten von 7200 auf 10.000 Velociraptoren. Irgendwie fühlte es sich etwas schneller an, aber nicht bahnbrechend. Ich hatte gehofft, dass SSDs revolutionär sind.
Julian de Wit
1
Ich denke nicht, dass Velociraptors SSD-Laufwerke sind, nur um klar zu sein.
Brett