mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

GCC - ccache でビルド高速化!

[ プログラミング ] [ C言語, GCC ]

こんばんは。

ccache は、コンパイラ・キャッシュで前回のプリプロセスの結果を再利用して次回以降のコンパイル時間を大幅に短縮する。
よって、ビルド(コンパイル+リンク)が大幅に高速化されます。

0. 前提条件

  • Linux Mint 17(64bit), CentOS 7.0(64bit) での作業を想定。
  • GCC(GNU Compiler Collection) 4.9.1 を想定。(別バージョンも同様のはず)
  • 今回は使用しないが、make 時に make -j [並列実行数] で並列化することも可能であることも認識しておくとよいかも。

1. ccache インストール

パッケージマネージャもしくは apt-get コマンド等でインストールするだけ。
(CentOS なら yum インストールできる(但し、ベースリポジトリには存在しないので “EPEL” リポジトリから))

1
$ sudo apt-get install ccache

2. ccache インストール確認

1
2
3
4
5
6
7
8
9
10
$ ccache --version
ccache version 3.1.9

Copyright (C) 2002-2007 Andrew Tridgell
Copyright (C) 2009-2011 Joel Rosdahl

This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 3 of the License, or (at your option) any later
version.

3. 使用方法

(キャッシュを利用するため、初回は高速化されず、2回目以降高速化されることを理解しておくこと)

3-1. Makefile を使用しない場合

以下のように先頭に ccache を追加する。

1
$ ccache g++ -Wall -O2 -o Hoge Hoge.cpp

3-2. Makefile を使用する場合M

C++ なら変数 CXX を、C なら CC を上書きして make する。

C++ の場合
1
$ make CXX="ccache g++"
C の場合
1
$ make CC="ccache gcc"

もしくは、Makefile 内で変数 CXX, CC を書き換えたり、 “.bashrc” 等で環境変数を設定しておいても良いだろう。

ちなみに、コンパイル・キャッシュは “$HOME/.ccache” に保存されている。


当方の場合、10秒位かかっていたビルドが1秒未満になり、ストレスが無くなりました。

以上。

Comments