Montag, 27. Juni 2011

ccache für optimiertes neukompilieren

Durch Zufall habe ich letzte Woche das Tool ccache gefunden.
Dabei handelt es sich um ein Tool, dass vom compiler generierte .obj Dateien cached.
Damit wird das erneute kompilieren eines Programmes um eine herbliche Dauer verkürzt.

Damit das Tool seine volle Leistung erreicht muss es erst eingerichtet und noch etwas angepasst werden.
In Debian Squeeze kann man es per "aptitude install ccache" installieren.

Ist dies getan, sollte man die größe des gesamten Caches noch anpassen.
Per Default steht dies bei 1 GB was leider viel zu klein ist, wenn man öfters Programme oder kernel kompiliert.

Hier muss man per "ccache -M " un einem Wert wie 25G die größe setzen.
Da ich meistens Systemplatten habe die ca. 120-250 Gigabyte fassen und selten genutzt werden, kann ich den cache locker auf 25G setzen.

Somit stellt man also den cache per "ccache -M 25G" auf schöne 25 Gigabyte.
Damit man auch eine kleine Übersicht hat kan man mit dem Parameter -s sich die Statistik anschauen.
Diese kann man mit dem Parameter -z wieder zurück setzen.

Für Leute selbst 25 Gigabyte als cache vollkriegen gibt es den Parameter -C der den gesamten cache löscht.

Wenn man den aktuellen stable Kernel 2.6.39.2 kompilieren will muss man noch 2 Variablen setzen.
Einmal muss noch die PATH Varaible angepasst werden.
Dies ist nötig, da ccache auf eigene Verlinkungen der jeweiligen compiler zugreifen muss.

Dazu verwendet man folgenden Befehl.
export PATH="/usr/lib/ccache:$PATH"

Nun muss zum kompilieren folgender Befehl verwendet werden.

make CC="ccache gcc"
 Zusätzlich kann man für die paralelle abarbeitung noch den Parameter -j und die Anzahl der Jobs anhängen.
Somit wird beim kompilieren ccache genutzt was beim erneuten kompilieren gut Zeitspart.

Zusätzlich kann man auch noch tmpfs nutzten.
Hier sollte man aber genutzt RAM haben, damit das Dateisystem bzw. der Speicher nicht vollläuft bevor man fertig mit kompilieren ist.

Keine Kommentare: