Com frequência precisamos compilar um programa e testar diversas vezes, até poder finalizar o trabalho com ele.
Ter uma ferramenta de caching do seu compilador é uma ótima forma de tornar seu trabalho todo mais eficiente e, principalmente, mais veloz.
Neste post, vou te apresentar o ccache.
Veja o que a própria ajuda do pacote diz sobre ele:
apt show ccache
...
O ccache é um cache de compilador.
Ele acelera a recompilação fazendo cache de compilações anteriores e detectando quando a mesma compilação está sendo feita novamente.
Há suporte para as linguagens C, C++, Objective-C e Objective-C++.
Como tudo, a ferramenta tem limitações.
O ccache suporta apenas um único arquivo C/C++/Objective-C/Objective-C++.
Para outros tipos de compilação (como arquivos múltiplos e links), ele acabará disparando o compilador real e, nestes casos, não haverá ganhos de desempenho.
Algumas flags de compilação podem também não ter suporte, o que também fará com que o utilitário volte ao compilador real do sistema.
Se você usa o Debian ou o Ubuntu, instale o ccache com o apt:
apt install ccache
No Fedora, use o dnf:
dnf install ccache
Meu teste com o ccache
Segue o meu teste de compilação do programa arearect.c++ — com aproximadamente 15 linhas de código.
Primeiro usei o g++ padrão do sistema:
g++ arearect.c++
real 0m0,678s
user 0m0,608s
sys 0m0,069s
Realizei 3 vezes o teste e o melhor resultado foi este, acima.
Abaixo, o melhor resultado usando o ccache:
time ccache g++ arearect.c++
real 0m0,663s
user 0m0,596s
sys 0m0,054s
Faça os seus próprios testes e decida se vale a pena para você.