ccache

提供: MonoBook
移動: 案内検索

ccache(しーきゃっしゅ)とは、各種コンパイラーが出力するオブジェクトファイルキャッシュし、無駄なコンパイルを省くことで再コンパイルを高速化するシステムである。

ccacheによるキャッシュの判断は、ソースコードでもオブジェクトコードでもなく、プリプロセッサーの出力結果を用いているようである。

ccacheの原作者はsambaの原作者としても有名なアンドリュー・トリジェルである。

対応するコンパイラー[編集]

2012年7月18日現在、ccacheがサポートしているプログラミング言語は以下のとおり。

公式サイトを見るといつの間にかObjective-CObjective-C++が増えているという。

UNIXOSで古くから使われる「ccコマンド」と「c++コマンド」への対応が基本となる。gccもこれらのコマンドに対するエイリアスが用意されているので特に考える必要はないと思う。

ccacheのソースコードを見ると、MinGWVisual C++などのWindows環境への対応が試みられた形跡はあるが、2012年7月18日現在では完全体ではなく対応していないと思われる。

ライセンス[編集]

ccacheのライセンスGPL v3である。

使い方[編集]

FreeBSD[編集]

[1]

portsからインストール[編集]

FreeBSDではportsが用意されている。

  • devel/ccache

portsから直接インストールする場合は以下のようにする。

# cd /usr/ports/devel/ccache
# make install clean

portupgradeを使っている場合は以下のようにする。 個人的にはこちらを使っており、同時に「-p」オプションを付けることでパッケージも作っておく。

# portinstall -p devel/ccache

/etc/make.confの設定[編集]

「/etc/make.conf」を編集し、make実行時にccacheが自動発動する条件を指定しておく。

.if (!empty(.CURDIR:M/usr/src*) || !empty(.CURDIR:M/usr/obj*)) && !defined(NOCCACHE)
  CC=/usr/local/libexec/ccache/world-cc
  CXX=/usr/local/libexec/ccache/world-c++
.endif

環境変数の設定:cshの場合[編集]

シェルにcshまたはtcshを使っている場合は「/root/.cshrc」を編集しccache関連の環境変数を設定しておく。キャッシュやログの保存場所や適宜設定すること。

setenv PATH /usr/local/libexec/ccache:$PATH
setenv CCACHE_PATH /usr/bin:/usr/local/bin
setenv CCACHE_DIR /var/tmp/ccache
setenv CCACHE_LOGFILE /var/log/ccache.log

上記の設定が完了したのち、sourceコマンドで環境変数を更新する。

# source /root/.cshrc

環境変数の設定:zshの場合[編集]

シェルにzshを使っている場合は「/root/.zshrc」を編集しccache関連の環境変数を設定しておく。キャッシュやログの保存場所や適宜設定すること。

export PATH=/usr/local/libexec/ccache:$PATH
export CCACHE_PATH=/usr/bin:/usr/local/bin
export CCACHE_DIR=/var/tmp/ccache
export CCACHE_LOGFILE=/var/log/ccache.log

上記の設定が完了したのち、sourceコマンドで環境変数を更新する。

# source /root/.zshrc

共通[編集]

統計情報を見る[編集]

以下のコマンドでキャッシュのヒット率などを閲覧することができる。

# ccache -s

統計情報をリセットする[編集]

以下のコマンドで統計情報をリセットすることができる。なお統計情報が消えるのであってキャッシュ自体が消えるわけではない。

# ccache -z

関連項目[編集]

参考文献[編集]

  1. http://linux-bsd-sharing.blogspot.jp/2009/01/howto-using-ccache-on-freebsd.html

外部リンク[編集]