distcc und ccache

Das Kompilieren von C/C++ Sourcen kann mit diesen Tools deutlich beschleunigt werden.

Mit distcc kann das Bauen von C/C++ Sourcen auf mehrere Rechner verteilt werden. Unter Gentoo funktioniert dies hervoragend. Unter FreeBSD mit Hilfe der bsdadmintools ebenfalls. Natürlich gibt es Programme, die nicht für das Kompilieren auf mehreren Kernen ausglegt sind.

Der Compiler-Cache ccache für C/C++ Compilate greift auf schon einmal übersetzte Quelltexte zurück. Dies spart einiges an CPU-Zeit. Insbesondere beim Kompilieren einer neueren Version einer großen Anwendung (Mozilla, OpenOffice, Java) kann dies einige Zeit bringen, da bei diesen Projekten in der Regel nicht der gesamte Quellcode neu geschrieben wird.

NOTE

Please read /usr/local/share/doc/ccache/ccache-howto-freebsd.txt for information on using ccache with FreeBSD ports and src.

ccache nutzen

Eintrag in /etc/make.conf:

  1. .if (!defined(NOCCACHE))
  2. CC:=${CC:C,^cc,/usr/local/libexec/ccache/world/cc,1}
  3. CXX:=${CXX:C,^c\+\+,/usr/local/libexec/ccache/world/c++,1}
  4. .endif

Eintrag in /etc/csh.cshrc

  1. setenv PATH /usr/local/libexec/ccache:$PATH
  2. setenv CCACHE_PATH /usr/bin:/usr/local/bin
  3. setenv CCACHE_DIR "/local/.ccache"

Sobald diese Variablen neu definiert wurden und das Cache-Diretory angelegt wurde, ist ccache für root unter der Standard C-Shell aktiv.

Das Kommando ccache listet Optionen auf, u.a.:

  • -c:
    Löschen alter Cache Einträge (normalerweise automatisch)
  • -C:
    Komplettes löschen des Caches
  • -F:
    Maximale Anzahl der Cache-Files. 0 für kein Limit
  • -M:
    Maximale Cache Größe. Standard: 1GB; 0 für kein Limit
  • -s:
    Statistische Informationen.
  • -z:
    Zurücksetzen der Zähler für die Statistik