Melhore seu desempenho como programador C e C++ com o uso de um cache de compilador. – Elias Praciano
Categories
Linux Programação Tutoriais

Melhore seu desempenho como programador C e C++ com o uso de um cache de compilador.

Saiba como instalar e usar um cache de compilador C e C++ para Linux.
O utilitário pode melhor o desempenho obtido em compilar código semelhante múltiplas vezes.

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ê.

By Elias Praciano

Autor de tecnologia (livre, de preferência), apaixonado por programação e astronomia.
Fã de séries, como "Rick and Morty" e "BoJack Horseman".
Me siga no Twitter e vamos trocar ideias!

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.