Configurando o Ccache no Gentoo e Otimizando Compilações
por
em 02-06-2010 às 09:56 (14779 Visualizações)
Olá a todos.
Aqui vai uma dica para quem usa Gentoo Linux: o uso do ccache.
Introdução
O ccache é um cache para compilações. Ele usa o chave "GCC -E" e um hash para detectar quando uma compilacão pode ser preenchida pelo cache. Os pacotes quando recompilados terão seu tempo de completude reduzidos. Em compilações comuns isso pode resultar em compilações de 5 a 10 vezes mais rápidas.
Instalando o ccache
Para utilizar a versão mais nova do ccache, edite o /etc/portage/package.keywords e habilite-o para versões "em teste" (testing):Código :[FONT=Courier New] # emerge ccache[/FONT]
Código :[FONT=Courier New]# nano /etc/portage/package.keywords dev-util/ccache ~amd64[/FONT]
Utilize emerge -s para obter informacões sobre o pacote.
Estável:
Teste:Código :[FONT=Courier New] # emerge -s ccache dev-util/ccache Latest version available: 2.4-r7[/FONT]
Código :[FONT=Courier New] # emerge -s ccache dev-util/ccache Latest version available: 2.4-r8[/FONT]
Configurando o ccache
Editando o arquivo /etc/make.conf
As opções CCACHE_DIR e CCACHE_SIZE são variáveis, os valores apresentados são valores padrão do ccache.Código :[FONT=Courier New]# nano /etc/make.conf FEATURES="ccache" CCACHE_DIR="/var/tmp/ccache" CCACHE_SIZE="2G" [/FONT]
No entanto, se você rodar ccache, ele irá usar o local padrão ${HOME}/.ccache, motivo pelo qual você precisou configurar a variável CCACHE_DIR na hora de pedir as estatísticas de ccache (do Portage).
Para o usuário root faca a seguinte modificação:
Existem duas maneiras de configurar o ccache para trabalhar com um usuário comum. Exportando a variável CC para apontar para o link simbólico do ccache, exemplo:Código :[FONT=Courier New]# cd ~ # rm .ccache # ln -s /var/tmp/portage .ccache # ls -lash 0 lrwxrwxrwx 1 root root 16 Mar 4 11:59 .ccache -> /var/tmp/ccache/[/FONT]
Ou configurando a variável PATH no perfil do usuário:Código :[FONT=Courier New]CC=/usr/lib/ccache/bin/gcc ./configure[/FONT]
ccache-configCódigo :[FONT=Courier New]PATH="/usr/lib/ccache/bin/:${PATH}" export ${PATH}[/FONT]
Um outra maneira de habilitar ccache para todo os sistema por padrão é utilizar os atalhos criados pelo ccache-config. Primeiramente será preciso descobrir a variável CHOST do seu sistema:
Depois de descoberto rode:Código :[FONT=Courier New]# emerge --info | grep CHOST CHOST="x86_64-pc-linux-gnu"[/FONT]
Para ver as estatísticas do ccache utilize:Código :[FONT=Courier New]# ccache-config --install-links x86_64-pc-linux-gnu Creating ccache shadow link: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-gcc... Creating ccache shadow link: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-c++... Creating ccache shadow link: /usr/lib/ccache/bin/x86_64-pc-linux-gnu-g++...[/FONT]
Para ver as estatísticas de outro usuário (apenas para root):Código :[FONT=Courier New]# ccache -s [/FONT]
GenkernelCódigo :[FONT=Courier New]# CCACHE_DIR=/home/gentoouser/.ccache ccache -s[/FONT]
O genkernel não usa ccache por padrão, mesmo quando você tenha o habilitado para root. Para resolver isso coloque a opção --kernel-cc quando você chamar o genkernel:
Um outra maneira (e mais cômoda) é editar o arquivo /etc/genkernel.conf:Código :[FONT=Courier New]genkernel --kernel-cc=/usr/lib/ccache/bin/gcc --menuconfig all[/FONT]
Código :[FONT=Courier New]# nano /etc/genkernel.conf ...procure a linha KERNEL_CC... KERNEL_CC="/usr/lib/ccache/bin/gcc"[/FONT]
Referências:
- Handbook do Gentoo
- Gentoo Wiki - Ccache
Páginas interessantes:
- ccache — Overview
- Gentoo Linux -- Gentoo Linux News
Comentários
+ Enviar Comentário