ccacheによるビルドの高速化
うちがmysqlのhackをする場合、ビルドに関して多いのは、
- hack用途に合った./configure呼び出しシェルスクリプトを作成して、それ経由で./configureを呼び出し
- 最初にクリーンな状態でmake
- make install
- mysql_install_dbとか流してmysqldを起動できるようにする
- ソースをいじる
- make
- sql/mysqldを直接起動(make installはしない)
- ソースをいじる
- make
- 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倍くらいな気がするので、そんな感じで効果ありっぽいです。