📅 2016-Mar-08 ⬩ ✍️ Ashwin Nanjappa ⬩ 🏷️ ccache, cpp, gcc ⬩ 📚 Archive
C++ compilation of large projects takes forever. One trick to speed it up is to cache previous compilations. When a compilation unit and its compilation options exactly match an earlier one, the result from the cache can be used directly. Such a compilation cache can reduce compilation times enormously (by orders of magnitude) on a machine where you build several times a day. CCache is an implementation of such a compilation cache for C and C++ compilation using GCC compilers.
$ sudo apt install ccache
The ccache man page suggests replacing the symlinks of gcc
, g++
, cc
and c++
with symlinks to /usr/bin/ccache
. This works, but is an onerous method.
The method I like is to just add /usr/lib/ccache
to the front of your PATH
environment variable. This directory has symlinks named for all the GCC compilers and they point to the ccache binary.
Once you finished either of the above two methods, that is it! You can just run your builds as usual. The first time your builds will take the usual time, but from the second time you should be able to witness enormous speedups.
To check details of the cache, such as its size, how much is occupied, number of cache hits and misses:
$ ccache --show-stats
$ ccache --clear
CCache is so easy to use and its benefits are so bountiful that I highly recommend using it if you are a C or C++ programmer.
(Thanks to this post for introducing me to ccache and you can also find some speedup metrics of using ccache in it.)
Tried with: CCache 3.1.9 and Ubuntu 14.04