# O Manual do &kcachegrind;

## Introdução

Quando você desenvolve um programa, muitas vezes um dos últimos passos é torná-lo o mais rápido possível (mas ainda funcional!). Você não deseja desperdiçar seu tempo otimizando funções que raramente são usadas. Logo você precisa saber em qual parte do seu programa a maior parte do tempo é consumido.

Isto é chamado Auditoria. O programa é executado sob o controle de uma ferramenta de auditoria, que fornece um rastro da execução do programa. Após a examinação deste rastro, você provavelmente saberá onde otimizar e, após isso, você poderá verificar o sucesso da otimização com outra auditoria.

Uma ferramenta de auditoria muito conhecida do GCC é o gprof: Você precisa compilar seu programa com a opção `-pg`; executar o programa gerando um arquivo `gmon.out`, que será transformado para uma forma legível pelos humanos com o `gprof`. A desvantagem é a necessidade do passo de compilação para um executável preparado, que deve ser ligado estaticamente.

Outra ferramenta de auditoria é o &cachegrind;, parte do &valgrind;. Ele usa a emulação do processador do &valgrind; para executar o programa, e captura todos os acessos de memória para rastreamento. O programa não precisa ser recompilado; ele pode usar bibliotecas compartilhadas e plugins, e as medidas de auditoria não influenciam os resultados do rastreamento. São rastreados o número de instruções/acesso à dados na memória e perdas nas caches de nível 1 e 2, e relaciona-o às linhas de código e funções do programa executável (uma desvantagem é o menor desempenho em virtude da emulação do processador, que é infelizmente cerca de 50 vezes mais lento).

Uma adição às fontes do &valgrind; 1.0.x adiciona rastreamento de árvore de chamadas, &ie; como as funções chamam umas às outras e quantos eventos ocorrem durante a execução de uma função (incluindo todas as funções chamadas).

O &kappname; é uma ferramenta de visualização para os dados da auditoria gerados pelo &cachegrind;. É altamente recomendável para adicionar suporte ao rastreamento da árvore de chamadas no &cachegrind;, porque o &kcachegrind; é muito mais útil deste modo.

## Usando o &kcachegrind;

Cada widget no &kcachegrind; possui uma ajuda O que é isto. Se você não deseja procurar nesta documentação, use-a!

### Exemplos Rápidos

Simplesmente execute-o!

### Recursos do &kcachegrind;

Suporta: eventos arbitrários, agrupamento de funções

### Linhas Gerais

Auditoria Efetiva...

### Tutorial

Uma sessão de auditoria no &kcachegrind;.

## Referência de Comandos

### A janela principal do &kcachegrind;

#### O Menu Arquivo

&Ctrl;N Arquivo Novo

- Cria um novo documento

&Ctrl;S Arquivo Salvar

- Salva o documento

&Ctrl;S Arquivo Sair

- Sai do &kappname;

## Perguntas e Respostas

&reporting.bugs; &updating.documentation;

O &kcachegrind; parece ser legal. Mas eu não entendo. Para quê ele é útil?

O &kcachegrind; é útil no último estágio de desenvolvimento de software, chamado Auditoria. Se você não desenvolve aplicativos, você não precisa do &kcachegrind;.

Eu estou tendo erros de compilação, o que este problema pode ser?

Freqüentemente, sua instalação do &Qt; não tem suporte ao &kde;.

## Créditos e Licença

&kappname;

Agradecimentos à Julian Seward pelo excelente &valgrind;, e Nicholas Nethercote pela adição do &cachegrind;. Sem estes programas, e da adição de árvore de chamadas ao &valgrind;, o KCachegrind não existiria. Muitas idéias para esta &GUI; também vieram deles.

E agradecimentos a todos os diferentes usuários que reportaram erros/sugestões. Por último, mas não menos importante, agradecimentos à

- O maravilhoso Aplicativo de ambiente de trabalho &kde;,

- &Qt;, o kit de ferramentas &GUI; perfeito

- &Linux;, o SO definitivo

&underFDL;

## Instalação

### Como obter o &kcachegrind;

O &kcachegrind; encontra-se na página web em http://www.weidendorfers.de/kcachegrind. Lá você obterá instruções completas para instalação e compilação.

### Requisitos

Para usar com sucesso o &kcachegrind;, você precisa do &kde; 3.x. Para gerar auditoria de rastros, o &cachegrind; é necessário. Para permitir opções mais interessantes de visualização do &kcachegrind;, aplica a adição de árvore de chamadas da página web do &kcachegrind; ao seu código do &valgrind;.

### Compilação e Instalação

&install.compile.documentation;

### Configuração

Todas as opções de configuração estão tanto no diálogo de configuração como nos menus de contexto dos gráficos.

&documentation.index;