Über Netzwerk kompilieren
-
Hallo,
Ist es möglich (am besten via Visual Studio) ein Projekt über mehrere Computer hinweg zu kompilieren - und das unter Aufteilung der Leistungsreserven?
Beispiel: Desktop A (High-End) und Notebook (Normal): Auf den Notebook wird an irgendeinen Ort ein Build Befehl ausgeführt. Über Internet (kein! lokales Netzwerk) wird der Build-Befehl auch an den Desktop transferiert der sich die Compile-Aufgaben dann mit dem Desktop teilt.
Gibt es so etwas in etwa? Dank MSDNAA hätte ich Zugriff auf das Team-Foundation Tool von Microsoft.. Kann man einen Desktop theoretisch als Team-Foundation Server einrichten?
Reicht hier überhaupt die Internetgeschwindigkeit (ca. 3MBit) damit eine Leistungssteigerung erreicht werden kann?Bsp auch: http://www.xoreax.com/case_study_scaleform.htm
Vielen Dank,
Timo
-
Timo.Stark schrieb:
Reicht hier überhaupt die Internetgeschwindigkeit (ca. 3MBit) damit eine Leistungssteigerung erreicht werden kann?
Vielen Dank,
TimoNein
-
Anders gefragt: Hat jemand mit distcc Erfahrung? (Zitat von deren Seite: "It's probably only feasible if the machines involved are on the same continent (preferably the same state) and have at least 512kbit connections." --- "Distcc is reported to work great over the internet with up to 10 ms latency. With 30 ms or more between the boxes distcc becomes less usefull, but this also depends on the speed and load of the boxes in question.") - Der Server wäre via 50 Mbit an das Internet angeschlossen, der Laptop wie gesagt, 3-6 Mbit.
S. http://benjamin-meyer.blogspot.com/2004/03/distcc-optimizations.html
Wenn es zu distcc und der Netzwerkkombi auch ein einfaches nein gibt reicht das schon
Alternativ für Visual Studio: http://www.xoreax.com/ Hat damit jemand Erfahrung?
-
Dumme Frage, evtl etwas am Thema vorbei, aber hast Du schon precompiled Headers im Einsatz?
Weil die verringern die Compile-Time auch enorm.
-
Ich denk schon, dass das etwas bringt. Es hängt nur eben von der konkreten Umsetzung ab. Wenn du jede C++-Datei einzeln auf den Server verschiebst und compilierst, dass kann nichts bringen. Da dauert der Transfer länger als das Compilieren. Wenn du aber das gesamte Projekt auf allen Rechnern hast, brauchst du nur eine Liste mit fertigen Projekten synchronisieren, bzw. vorher festlegen, wer was macht. Das ganze noch mit Versionsverwaltungssystem und dein Buildprozess dauert statt einer Stunde nur noch eine halbe. Mit einem eigenem Buildscript oder Makefile sollte sich so etwas auf jeden Fall umsetzen lassen.
-
Die Kombination aus distcc und ccache ist auf alle Fälle hilfreich und funktioniert gut. Allerdings war die langsamste Netzwerkverbindung, die ich damit bis dato verwendet habe, eine 10MBit/s-Verbindung. Zu schmaleren Leitungen musst Du wohl noch etwas googeln.