Ways Kompilierzeit zu beschleunigen? (C # / Unmanaged C ++)
Frage
Ein Vermächtnis app ich auf currenty arbeite nimmt ~ 2 Stunden zu bauen. Das Projekt hat über 170 Projekte mit 150 oder so ist nicht verwaltete C ++ und die anderen 30 C # .Net 2.0.
Was sind einige Vorschläge über Möglichkeiten Bauzeiten für so etwas wie das?
zu verbessernLösung
Fokus auf den C ++ Projekte -. Sie fast garantiert sind die größten Zeitabläufe für Gebäude sein
Einige Tipps für die C immer mal ++ baut unten:
- Stellen Sie sicher, dass Sie nur mit Header, die Sie in den C ++ Projekte müssen!
- Mit Vorwärtsdeklarationen, wenn möglich in Header stattdessen anderen Header einschließlich
- Verwenden Sie den / MP Schalter parallel zu bauen, wenn möglich
- Verwenden Abstraktion effektiv
- Seien Sie bei der Verwendung von Inline-Funktionen zu schonen, da diese Kosten mehr bei der Kompilierung
- Holen Sie sich die Abhängigkeiten richtig, so dass Sie nicht öfter Gebäude, das erforderlich
- Verwenden Sie vorkompiliert Header entsprechend
Abgesehen davon, wenn Sie sprechen 2 Stunden Bauzeiten, oft gibt es eine einfache, billige (in einem großen Bild Art und Weise) Lösung, wie auch:
- Aktualisieren Sie Ihre Hardware, um die Rechenzeiten reduzieren
Andere Tipps
Wenn Sie installieren IncrediBuild auf jeder Maschine, die es bauen soll, verteilt sie den Build-Prozess unter allen der Maschinen. Wenn Sie wirklich nur die Hardware auf das Problem werfen möchten, können Sie ein paar spezielle Maschinen einrichten, die nur als IncrediBuild Kunden dienen.
Auf einem anderen Maßstab, stellen Sie sicher, dass jedes Projekt hat vorkompiliert Header richtig konfiguriert ist.
Sie können versuchen, das verteilte Build-System IncrediBuild: http://www.xoreax.com/visual_studio. htm
Sie können ein Tool wie Flusen verwenden, um zu sehen, wenn Sie redundante umfassen Dateien in Ihrem c ++ Projekte.
Es gibt auch einen großen Artikel zu diesem Thema unter Spiele von innen .
Erstellen Sie mehrere Lösungen für das Projekt, das nur relevante Untergruppen der Projekte schließen und eine Super-Lösung lassen Mitteilungen etc.