MacPortsにccacheを導入してビルド時間を短縮する

MacPorts は普段からよく使っていますが、最近、ソースからコンパイルする機会が増えてきたので ccache を導入することにしました。

ccache とは Compiler Cache の略でコンパイルされた情報をキャッシュしてくれるもので、1度しかコンパイルしないような場合はあまり効果はないけど、2回目以降はキャッシュから使えるものは再利用してくれるので作業時間が短縮されるんだそうな。

ccache のインストールと環境設定

  1. MacPorts から ccache をインストールする。

    sudo port install ccache
  2. /opt/local/bin/etc/macports/macports.conf を編集する。

    1. 61行目:ccache を有効にする。

      #configureccache    no
      configureccache     yes
    2. 64行目:ccache ディレクトリを指定する。デフォルトでは $HOME/.ccache に保存するらしいのでそれ以外を指定したい場合に。

      #ccache_dir         /opt/local/var/macports/build/.ccache
      ccache_dir          /opt/local/var/macports/build/.ccache
    3. 68行目:最大キャッシュサイズを指定する。"G"、"M"、"K" でギガバイト、メガバイト、キロバイトの指定が可能。"0" で無制限。

      #ccache_size        2G
      ccache_size         2G

  3. MacPorts 以外でも ccache が使えるように $HOME/.bash_profile か $HOME/.profile を編集してパスを通す。

    #export PATH=/opt/local/bin:/opt/local/sbin:$PATH
    export PATH=/opt/local/libexec/ccache:/opt/local/bin:/opt/local/sbin:$PATH

ccache の操作

configureccache=yes にしただけの状態。

  • ccache のステータスを確認する。

    ccache -s
    
    cache directory                     /Users/mattintosh/.ccache
    cache hit (direct)                     0
    cache hit (preprocessed)               0
    cache miss                             0
    files in cache                         0
    cache size                             0 Kbytes
    max cache size                       1.0 Gbytes
  • 最大キャッシュサイズを変更する。

    ccache -M 2G
    
    Set cache size limit to 2.0 Gbytes
  • キャッシュを掃除する。古いファイル等を削除するが自動的に行われるため通常は必要ないとのこと。

    ccache -c
    
    Cleaned cache
  • キャッシュを完全に削除する。

    ccache -C
    
    Cleared cache


参考:howto/ccache – MacPorts