Si vous êtes sur un disque dur en rotation et que vous supprimez un grand nombre de fichiers, il se peut que l'allocation de certains fichiers ne soit pas optimale. Si vous disposez d'un SSD, vous devrez établir le profil du processus de construction pour déterminer le goulot d'étranglement réel.
Juste pour confirmer, le df -g
indique 18,7 Go de libre pour le volume du système d'exploitation ? En supposant que oui, vous n'avez oublié aucun paramètre comme le nettoyage des snapshots locaux dans Time Machine ou la vidange de la corbeille.
Pour ce qui est du disque dur, vous pouvez le tester en éteignant le Mac après avoir supprimé les fichiers sources ou en les copiant sur un autre disque.
Après le redémarrage, vous pouvez fonctionner pendant une journée (configurer le Mac pour qu'il ne se mette jamais en veille) et l'optimisation des fichiers à chaud commencera à déplacer les fichiers qui ne sont pas souvent consultés hors de la partie la plus rapide du disque dur.
Ensuite, remettez votre code source et essayez de le compiler. A ce moment-là, si vous êtes toujours lent, vous devrez entrer dans les détails - utilisez la fonction time
pour chronométrer les compilations et ensuite profiler le système avec la commande vm_stat 5
ou un outil similaire comme Activity Monitor pour voir si vous êtes limité par la RAM, le CPU ou les entrées-sorties. iostat
sera également très utile pour mesurer les iops et les taux de transfert agrégés en lecture/écriture afin de savoir comment votre stockage est accédé à chaque instant pendant que clang
fait son travail.
Les étapes ci-dessus sur ma machine montrent que io et le stockage a un impact très faible sur le compilateur et plutôt CPU et threading la construction serait comment l'accélérer, mais ma base de code est probablement très différente de la vôtre.