Wann die XCode Distributed Build-Funktion verwendet werden soll

9

Ich arbeite in einem kleinen iPhone Entwicklungsteam, in unserem Büro haben wir mindestens 4 Kopien von XCode, die gleichzeitig im Netzwerk laufen. Ich denke daran, dass jeder es laufen lässt.

Wir sind über einen Standard-WIFI-Switch miteinander vernetzt, so dass Netzwerkgeschwindigkeit und Latenz nicht so gut sind wie bei verkabelten Netzwerken ...

Ich frage mich nur, ob es einen Echtzeitgewinn für die Verwendung verteilter Builds gibt? Sobald es die relevanten Daten hin und her über das Netzwerk übermittelt. Zumindest für relativ kleine Projekte.

    
David van Dugteren 07.02.2011, 00:35
quelle

1 Antwort

4

Es hängt von Ihrem Projekt, seinen Abhängigkeiten und der Menge der Daten ab, die übertragen werden müssen.

15-20 Sekunden ist nicht schrecklich. Sicherlich gibt es insgesamt mehr zu tun. Es kann eine gute Idee für jeden sein, es auf einem sehr schnellen Mac Pro zu betreiben, anstatt sich gegenseitig, wenn Sie Dual-Kerne verwenden (diese Information wurde nicht gegeben).

Soweit Projektkonfiguration: Wenn Sie in Ihren Projekten eine Reihe von abhängigen Bibliotheken haben, kann es hilfreich sein, vorkompilierte Header zu deaktivieren. Ein Großteil der Gleichung ist die durchschnittliche Anzahl der Abhängigkeiten und die Anzahl der zu erzeugenden Objekte.

in 15-20 Sekunden, würde es vielen Entwicklern helfen zu schreiben, so dass sie ihre Bauzeiten vor dem Auspflanzen optimieren. Wenn es ein paar Minuten wären, dann möchtest du vielleicht direkt in verteilte Builds mit einem 8 oder 12 Kern springen.

Ein leicht übersehener Aspekt der langsamen Builds bei kleinen Projekten: Deaktivieren Sie die statische Analyse pro Build, und führen Sie sie nur jede zweite Stunde manuell aus und beheben Sie dann jedes Problem.

Andernfalls könnte Ihr Projekt wahrscheinlich in kleinere Projekte / Bibliotheken unterteilt werden. Wahrscheinlich werden Sie nicht immer dieselben Abhängigkeiten bearbeiten.

unter der Annahme, Kompilierung, Verknüpfung, usw. sind, wo die Zeit an diesem Punkt verbracht wird: viel von dem Rest fällt in die typischen Probleme bei der Erstellung von C-und C ++ - Programme. Minimiere deine Abhängigkeiten und schließe Grafiken ein. es ist mit objc eigentlich ziemlich einfach zu erreichen; Da viele der Schnittstellen Objc-Typen verwenden, können Sie vorwärts verwenden.

Wenn Ihre Bibliothek klein ist (z. B. weniger als 50 Objekte generiert), können Sie auch eine Beschleunigung erzielen, indem Sie keine vorkompilierten Header verwenden. Wenn alles bereits von der Einbindung von 12 System-Frameworks abhängt, die vom PCH enthalten sind, dann versuche es im nächsten Projekt.

Natürlich könnten Sie einfach versuchen, eine saubere Neuerstellung, einen Build mit generierten pch-Dateien und mehrere inkrementelle Builds zu planen, um zu einer Schlussfolgerung zu kommen.

    
justin 07.02.2011, 06:59
quelle