ccacheによるビルドの高速化

うちがmysqlのhackをする場合、ビルドに関して多いのは、

  1. hack用途に合った./configure呼び出しシェルスクリプトを作成して、それ経由で./configureを呼び出し
  2. 最初にクリーンな状態でmake
  3. make install
  4. mysql_install_dbとか流してmysqldを起動できるようにする
  5. ソースをいじる
  6. make
  7. sql/mysqldを直接起動(make installはしない)
  8. ソースをいじる
  9. make
  10. sql/mysqldを(以下略、以下ループ

という感じで、再ビルドはmakeプログラムの判断で最小限のみ行うようにしてます。またmakeも、hack対象となるソースがsqlディレクトリ内のファイルのみの場合には、sqlディレクトリ内でmakeをします。そうすると、10秒かからないで再ビルドできます。

まだmysql内部について、理解していないことも多いので、いじる→ビルドエラー、とかの情報がありがたかったりします。なのでかなりこまめに再ビルドしてます。

しかし、たまーに、単にmakeするだけだと変だなーと思うときがあって(ヘッダファイルとかいじるとそういう場合が多い?)、そんときはmake cleanしてからmakeしなおすわけですが、この時、普段に比べると異様に遅く感じる訳です。そりゃそーだという感じですが・・・。

というわけでccacheを導入。

CC='ccache gcc' CXX='ccache gcc'

とやればいいだけのようです。

初回make時に7分くらいだったのが、2回目以降(make cleanしてから再度make)は3分半くらいになった、、、、ような感じです。makeのログの流れる速さも体感的に2倍くらいな気がするので、そんな感じで効果ありっぽいです。