Ver Feed RSS

Olhos que ardem...

Configurando o Ccache no Gentoo e Otimizando Compilações

Avalie este Post de Blog
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
Código :
[FONT=Courier New] # emerge ccache[/FONT]
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]# nano /etc/portage/package.keywords
 
dev-util/ccache ~amd64[/FONT]


Utilize emerge -s para obter informacões sobre o pacote.


Estável:
Código :
[FONT=Courier New] # emerge -s ccache
 
dev-util/ccache
Latest version available: 2.4-r7[/FONT]
Teste:
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

Código :
[FONT=Courier New]# nano /etc/make.conf
 
FEATURES="ccache"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="2G"
[/FONT]
As opções CCACHE_DIR e CCACHE_SIZE são variáveis, os valores apresentados são valores padrão do ccache.

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:
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]
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]CC=/usr/lib/ccache/bin/gcc ./configure[/FONT]
Ou configurando a variável PATH no perfil do usuário:
Código :
[FONT=Courier New]PATH="/usr/lib/ccache/bin/:${PATH}"
export ${PATH}[/FONT]
ccache-config

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:
Código :
[FONT=Courier New]# emerge --info | grep CHOST
CHOST="x86_64-pc-linux-gnu"[/FONT]
Depois de descoberto rode:
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 do ccache utilize:
Código :
[FONT=Courier New]# ccache -s [/FONT]
Para ver as estatísticas de outro usuário (apenas para root):
Código :
[FONT=Courier New]# CCACHE_DIR=/home/gentoouser/.ccache ccache -s[/FONT]
Genkernel

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:
Código :
[FONT=Courier New]genkernel --kernel-cc=/usr/lib/ccache/bin/gcc --menuconfig all[/FONT]
Um outra maneira (e mais cômoda) é editar o arquivo /etc/genkernel.conf:
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

Atualizado 03-06-2010 em 19:54 por Duca

Categorias
Pessoal , Under-Linux , Dicas , Tutoriais

Comentários

  1. Avatar de MarcusMaciel
    duca otimo artigo so falta vc colocar nos bbcodes suportados por outras linguas
  2. Avatar de Duca
    Valeu Marcão!

    Feito!

+ Enviar Comentário