Ich habe verschiedene Methoden getestet, um die Kompilierungszeit meines gesamten c ++ - Projekts zu verkürzen. Derzeit dauert es ca. 5 Minuten. Ich habe mit distcc, ccache und anderen experimentiert. Kürzlich entdeckte ich, dass, wenn ich mein gesamtes Projekt auf ein RAM-Laufwerk kopiere und von dort kompiliere, die Kompilierzeit auf 30% der ursprünglichen Zeit reduziert wird - nur 1,5 Minuten.
Es ist offensichtlich nicht praktisch, vom RAM-Laufwerk aus zu arbeiten. Weiß jemand, wie ich das Betriebssystem zwingen kann , ein bestimmtes Verzeichnis immer im Cache zu halten ? Ich möchte weiterhin, dass das Verzeichnis wie gewohnt wieder auf die Festplatte synchronisiert wird, aber ich möchte immer auch eine Kopie der Daten im Speicher. Ist das möglich?
BEARBEITEN:
Als mögliche Lösung haben wir uns gerade überlegt, einen Dämon zu starten, der etwa rsync
alle 10 Sekunden ausgeführt wird, um das Festplattenlaufwerk mit einem RAM-Laufwerk zu synchronisieren. Dann führen wir die Kompilierung vom RAM-Laufwerk aus. Das rsync
ist blitzschnell, aber würde das wirklich funktionieren? Sicher könnte das Betriebssystem besser sein ...
time
Ihre Zusammenstellung und das Ergebnis mit uns teilen? Es würde einige Kontroversen zerstreuen. make clean && /usr/bin/time -v make
(Verwenden Sie nicht den eingebauten time
Befehl bash )
time
eingebaute Bash ( help time
) hat viel weniger Details (keine ausführliche Option) als die GNU-Zeit ( man time
) in Bezug auf die E / A, Kontext-Schalter, ...