Beschleunigen Sie die Kompilierung in Xcode schnell

Wenn das Projekt wächst, verlangsamt sich die Kompilierungsgeschwindigkeit des Projekts. Dies macht sich besonders dann bemerkbar, wenn Sie das Programm testen und gleichzeitig kleine Änderungen am Programm vornehmen.

Lassen Sie uns zunächst herausfinden, wie lange das Projekt bis zu unseren Verbesserungen kompiliert wird. Geben Sie dazu das Terminal ein

defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES 

Gehen Sie dazu zum Abschnitt Produkt, halten Sie die Alt-Taste gedrückt, klicken Sie auf Build-Ordner bereinigen und setzen Sie das Projekt wieder zusammen. Mein Projekt wird 81 Sekunden lang kompiliert. Mal sehen, was das Ergebnis nach der Verbesserung sein wird.



Zunächst sollten wir herausfinden, welche Orte die Kompilierung verlangsamen. Standardmäßig zeigt Xcode keine Warnung an, wo das Problem liegt, aber wir können es beheben.
Die schwierigsten Stellen sind großartige Funktionen und Typprüfungen. Daher müssen wir diese beiden Zeilen im Abschnitt Build Settings -> Other Swift Flags -> Debug eingeben

 -Xfrontend -warn-long-function-bodies=100 -Xfrontend -warn-long-expression-type-checking=100 

(hier haben wir 100ms Kompilierungszeit, wir können eine beliebige Zahl setzen)

Grafische Zeichnung


Ein Beispiel für meinen Arbeitsentwurf



Ich habe einen Abschnitt, der 13778 ms dauert, höchstwahrscheinlich haben Sie diesen nicht, aber aufgrund der Besonderheiten des Projekts habe ich solche Abschnitte. Da wird ein Binärbaum für OCR erstellt.
Aufgrund der tiefen Verschachtelung ineinander und der Typdefinition erst ganz am Anfang vor dem Gleichheitszeichen benötigt der Compiler viel Zeit, um zu verstehen, welcher Typ davor steht. (Der Baum benötigt 30 Zeilen, hier ist ein Teil davon)

Zu



Nachher



Wir haben den Typ für jede Verschachtelung bestimmt und die Warnung ist verschwunden.

Ein weiterer Schwachpunkt sind mehrere Kurzschlüsse hintereinander.

Zu



Nachher

Explizit angegebener Typ



Nachdem alle Warnungen behoben wurden, überprüfen wir die Erstellungszeit des Projekts erneut.
Jetzt kompiliert das Projekt 26 Sekunden zweieinhalb Mal schneller.



Es gibt noch viel zu tun, aber die offensichtlichsten Probleme wurden behoben.

Source: https://habr.com/ru/post/de439290/


All Articles