Ccache (Português)
ccache é uma ferramenta para o compilador gcc usada para compilar o mesmo programa repetidas vezes com pouco tempo de inatividade. Enquanto pode levar alguns segundos mais para compilar um programa na primeira vez com o ccache
, compilações subsequentes serão muito, muito mais rápidos.
Contents
Instalação
Configuração
O comportamento padrão pode ser sobrescrito pelos arquivos de configuração. Prioridade das configurações é a seguinte (sendo 1 o mais alto):
- Variáveis de ambiente
- Arquivo de configuração específico do cache (
$HOME/.ccache/ccache.conf
) - Arquivo de configuração para todo sistema (
/etc/ccache.conf
)
Habilitar ccache para makepkg
Para habilitar o ccache ao usar makepkg, edite /etc/makepkg.conf
. Em BUILDENV
, descomente ccache
(remova a marca de exclamação) para habilitar cache. Por exemplo:
/etc/makepkg.conf
BUILDENV=(fakeroot !distcc color ccache check !sign)
Habilitar para linha de comando
Se você está compilando seu código a partir da linha de comando, e não compilando pacotes, então você ainda desejará usar ccache
para ajudar a acelerar as coisas.
Para isso, você precisará alterar seu $PATH
para incluir os binários do ccache
antes do caminho de seu compilador:
$ export PATH="/usr/lib/ccache/bin/:$PATH"
Você pode querer adicionar essa linha ao seu arquivo ~/.bashrc
para uso regular.
Habilitar com colorgcc
Já que colorgcc também um wrapper de compilador, precisa-se ter alguns cuidados para garantir que cada wrapper é chamado na sequência correta.
export PATH="/usr/lib/colorgcc/bin/:$PATH" # De acordo com a instalação usual de colorgcc, deixe inalterado (não adicione ccache) export CCACHE_PATH="/usr/bin" # Fale para o ccache usar apenas compiladores aqui
Então, o colorgcc precisa ser informado para chamar ccache em vez do compilador real. Edite /etc/colorgcc/colorgccrc
e altere os caminhos de /usr/bin
para /usr/lib/ccache/bin
para todos os compiladores em /usr/lib/ccache/bin
:
/etc/colorgcc/colorgccrc
g++: /usr/lib/ccache/bin/g++ gcc: /usr/lib/ccache/bin/gcc c++: /usr/lib/ccache/bin/g++ cc: /usr/lib/ccache/bin/cc g77:/usr/bin/g77 f77:/usr/bin/g77 gcj:/usr/bin/gcj
Diversos
Alterar o diretório do cache
Você pode querer mover o diretório cache para uma localização mais rápida do que o diretório ~/.ccache
padrão, como um SSD ou um ramdisk.
Para alterar a localização do cacho apenas no shell atual:
$ export CCACHE_DIR=/ramdisk/ccache
Ou para alterar a localização por padrão:
/home/user/.ccache/ccache.conf
cache_dir = /ramdisk/ccache
Configurar o tamanho máximo do cache
O valor padrão é 5 gigabyte, porém é possível usar um valor menor ou até mesmo mais alto:
$ ccache --set-config=max_size=2.0G
Desabilitar o cacho via ambiente
Se você deseja desabilitar o CCache apenas no shell atual:
$ export CCACHE_DISABLE=1
CLI
Você pode usar o utilitário de linha de comando ccache
para mostrar um resumo de estatística:
$ ccache -s
ou limpar o cache completamente:
$ ccache -C
makechrootpkg
Também é possível usar o ccache com makechrootpkg. Para reter o cache quando o chroot é limpado pelo makechrootpkg, a opção -d
pode ser usada para vincular o diretório do cache do sistema regular para o chroot, ex.:
$ mkdir /path/of/chroot/ccache $ makechrootpkg -d /caminho/para/cache/:/ccache -r /caminho/do/chroot -- CCACHE_DIR=/ccache
Então, ccache pode ser configurado para o chroot na mesma forma como explicado acima para o sistema comum.