Welche PC-Komponenten wirken sich am stärksten auf Ihre Kompilierzeiten für Visual Studio aus?

10195
Rob Allen

Welche PC-Spezifikationen haben den größten Einfluss auf Ihre Kompilierzeiten? Platte? Taktfrequenz? Anzahl der CPU-Kerne

16
Ist das nicht eine Programmierfrage? Hätte es eine größere Zielgruppe bei StackOverflow? Kurt W. Leucht vor 15 Jahren 1

7 Antworten auf die Frage

13
Bevan

Der Faktor, den ich gefunden habe, macht den größten Unterschied, ist nicht ein physikalischer Faktor, sondern ein Software-Faktor: Welchen Virenschutz haben Sie installiert?

Einige Antiviren-Produkte beherrschen die Softwareentwicklung nicht sehr gut. Sie sehen alle Anwendungsdateien neu geschrieben, verdächtigen das Foulspiel und scannen jede Datei jedes Mal neu.

(Weitere Informationen finden Sie unter https://stackoverflow.com/questions/1170078/isit-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 .)

Wenn Sie dagegen die Leistung einer vorhandenen Maschine verbessern möchten, ist nichts besser als der verfügbare Speicher für einen schnellen Gewinn.

PC im Büro verwendet den TrendMicro OfficeScan. Mein Dev-Laptop zu Hause verwendet AVG 8. Rob Allen vor 15 Jahren 0
"Trend Micro". Ach je. Wenn Sie das nicht für etwas anderes ändern können, verabschieden Sie sich von jeder Aufführung. Bevan vor 15 Jahren 3
9
lyngbym

Scott Gu berichtete auch über die Auswirkungen auf die Geschwindigkeit des Gebäudes, wobei er hauptsächlich auf E / A- Ressourcen wie die Festplatte verweist .

http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx

8
JP Alioto

Hier ein paar schöne Forschungsergebnisse von Scott Hanselman zur Verwendung mehrerer CPUs für MSBUild. Die Beschleunigungen sind ziemlich dramatisch.

Edit: Ich sollte jedoch beachten, dass Sie für den Umgang mit Visual Studio viel Arbeitsspeicher benötigen. :)

+1 Guter Artikel zum Thema. Ich habe das vergessen. Ich glaube, er hat auch einen Podcast dazu gemacht. BinaryMisfit vor 15 Jahren 0
4
mmyers

Meine persönliche Erfahrung mit einer C ++ - Codebasis von angemessener Größe:

Alte Maschine

Prozessor: Pentium 4 HT 3.06 GHz
Speicher: 1 GB DDR-RAM (PC 2100, also 333 MHz)
Festplatte: 7200 U / min-Festplatte (UDMA 100, wenn der Speicher dient)
Compilierzeit: 50 Minuten

Neue Maschine:

Prozessor: Core i7 720QM (8 logische Prozessoren) bei 1,6 GHz, Turbo-Boost auf 1,73 GHz, wenn alle Kerne aktiv sind
Speicher: 8 GB DDR3-RAM bei 1066 MHz
Festplatte: 7200 U / min-Festplatte (SATA 2)
Compilierzeit: 4 Minuten (mit / MP )


Fazit: Je mehr Prozessoren, desto besser - auch bei relativ niedrigen Taktraten. Eine SSD würde die Zeiten weiter verbessern, aber aufgrund der Beobachtung der Zusammenstellungsnachrichten bezweifle ich, dass sie sich um mehr als 30 Sekunden verbessern würde.

3
BinaryMisfit

Soweit ich mich hauptsächlich an Prozessor und Speicher erinnere. Ein schneller Google-Server enthüllte verschiedene Verbesserungen, die die Kompilierzeiten verbessern können.

Joel hat kürzlich über die Auswirkungen von Solid State Disks auf Kompilierungen hier berichtet . Die Festplattengeschwindigkeit verbessert die Kompilierzeit im Allgemeinen nicht drastisch. Doch nach dieser hat es eine Wirkung haben, wie darauf hingewiesen lyngbym .

1
bk1e

Xoreax IncrediBuild ist ein verteiltes Build-System, das die Kompilierzeiten, in denen ich arbeite, erheblich verbessert hat. (Die Verbindungszeiten sind leider immer noch ziemlich lang, insbesondere bei der Erstellung von Versionen, die die Optimierung des gesamten Programms und die Generierung von Verbindungszeitcode verwenden, aber das ist zu erwarten.)

Alt-Text

1
Sam Harwell

Für die Erstellung von C ++ - Programmen ist der Faktor # 1 vor allem struktureller Natur. Wenn der Quellcode stark vertikal strukturiert ist, hat dies verheerende Auswirkungen auf die Bauzeiten, insbesondere auf inkrementelle Builds. Ich habe ein paar Teile eines Projekts lokal umstrukturiert, um eine drastische Verbesserung eines Quad-Core-Xeon zu erreichen. 18 Monate später, und sie (die Personen, denen das Projekt gehört) können auch auf Core-i7-Maschinen nicht mit meinen Wanduhrzeiten übereinstimmen.

Der Effekt (positiv oder negativ) Ihres Software-Layouts multipliziert sich mit jedem Mitglied Ihres Teams und jedem Build, das er ausführt.

Haben Sie einen Link, der die verschiedenen Codestrukturen beschreibt? Ich glaube, ich weiß, worauf Sie sich beziehen, aber ich bin nicht sicher. Rob Allen vor 15 Jahren 0
Ich habe Probleme, meine Referenzen zu finden, aber die allgemeine Idee ist 1) Verwenden Sie Forward-Deklarationen, 2) Include-Dateien nur, wenn eine Forward-Deklaration nicht funktioniert. 3) Vergewissern Sie sich, dass die hinzugefügte Datei keine weiteren deklariert Dinge als notwendig, was wiederum dazu führen könnte, dass es mehr Dateien enthält, die Sie sonst nicht für die bestimmte Quelldatei benötigen, die kompiliert wird (dh, halten Sie die Header klein und verwenden Sie Forward-Deklarationen, genau wie Sie es für Quelldateien tun). Sam Harwell vor 15 Jahren 0