À mesure que le projet se développe, la vitesse de compilation du projet ralentit. Cela devient particulièrement visible lorsque vous testez le programme, tout en apportant de petites modifications au programme en parallèle.
Tout d'abord, découvrons combien de temps le projet se compile pour nos améliorations. Pour ce faire, entrez dans le terminal
defaults write com.apple.dt.Xcode ShowBuildOperationDuration -bool YES
Pour ce faire, accédez à la section Produit, maintenez alt et cliquez sur Clean Build Folder, puis réassemblez le projet. Mon projet se compile pendant
81 secondes . Voyons quel sera le résultat après amélioration.

Tout d'abord, nous devons savoir quels endroits ralentissent la compilation. Par défaut, Xcode n'affiche pas d'avertissement où se trouve le problème, mais nous pouvons le résoudre.
Les endroits les plus difficiles sont de grandes fonctionnalités et la vérification de type. Par conséquent, nous devons entrer ces deux lignes dans la section Paramètres de construction -> Autres indicateurs Swift -> Débogage
-Xfrontend -warn-long-function-bodies=100 -Xfrontend -warn-long-expression-type-checking=100
(ici nous avons 100 ms de temps de compilation, nous pouvons mettre n'importe quel nombre)
Un exemple de mon projet de travail

J'ai une section qui prend 13778 ms, très probablement vous n'en aurez pas, mais en raison des spécificités du projet, j'ai de telles sections. Puisqu'il est construit un arbre binaire pour l'OCR.
En raison de l'imbrication profonde les uns des autres et de la définition du type uniquement au tout début, avant le signe égal, le compilateur a besoin de beaucoup de temps pour comprendre quel type se trouve devant lui. (L'arbre prend 30 lignes, en voici une partie)
À
Après
Nous avons déterminé le type de chaque nidification et l'avertissement a disparu.
Un autre point faible est plusieurs courts-circuits consécutifs.
À
AprèsType explicitement spécifié

Après avoir corrigé tous les avertissements, nous vérifierons à nouveau le temps de construction du projet.
Maintenant, le projet compile
26 secondes deux fois et demie plus vite.

Il y a encore du travail à faire, mais les problèmes les plus évidents ont été résolus.