Das Kompilieren mit Clang im Terminal ist extrem langsam, nachdem eine Meldung angezeigt wird, dass meine Festplatte fast voll ist. Wie stellt man die Leistung wieder her?

Ich habe Dateien entfernt, sodass ich jetzt 18,7 GB Speicherplatz frei habe, nachdem ich die Finder-Meldung erhalten habe, dass mein Speicher fast voll ist.

Trotzdem ist das Kompilieren extrem langsam. Ich frage mich, ob es eine Einstellung gibt, die ich übersehen habe.

Wie kann ich das beheben?

Antworten (1)

Wenn Sie sich auf einer sich drehenden Festplatte befinden und eine große Menge Dateien entfernen, haben Sie möglicherweise eine suboptimale Zuordnung einiger Dateien. Wenn Sie eine SSD haben, müssen Sie den Erstellungsprozess profilieren, um den tatsächlichen Engpass zu ermitteln.

Nur zur Bestätigung, der df -gBefehl listet 18,7 GB frei für das Betriebssystemvolumen auf? Angenommen, Sie haben keine Einstellungen wie das Bereinigen lokaler Schnappschüsse in Time Machine oder das Leeren des Papierkorbs verpasst.


Für die HDD-Situation können Sie dies testen, indem Sie den Mac herunterfahren, nachdem Sie die Quelldateien entfernt oder auf ein anderes Laufwerk kopiert haben.

Nach dem Neustart laufen Sie möglicherweise einen Tag lang (stellen Sie den Mac so ein, dass er niemals in den Ruhezustand versetzt wird), und die Hot-File-Optimierung beginnt, Dateien, auf die nicht oft zugegriffen wird, vom schnellsten Teil der Festplatte zu verschieben.

Dann - verschieben Sie Ihren Quellcode zurück und versuchen Sie eine Kompilierung. Wenn Sie an diesem Punkt immer noch langsam sind, müssen Sie sich mit Einzelheiten befassen. Verwenden Sie den timeBefehl, um die Kompilierungen zeitlich festzulegen, und erstellen Sie dann ein Profil des Systems mit vm_stat 5oder ähnlichem wie Activity Monitor, um zu sehen, ob Sie durch RAM, CPU oder IO eingeschränkt sind . iostatist auch sehr hilfreich für die Messung der IOPS und der aggregierten Lese-/Schreib-Übertragungsraten, damit Sie wissen, wie auf Ihren Speicher von Moment zu Moment zugegriffen wird, während clanger funktioniert.

Die obigen Schritte auf meinem Computer zeigen, dass io und Speicher einen sehr geringen Einfluss auf den Compiler haben und stattdessen CPU und Threading den Build beschleunigen würden, aber meine Codebasis unterscheidet sich wahrscheinlich stark von Ihrer.