# O Manual do &kcachegrind;

Josef
Weidendorfer

    Josef.Weidendorfer@gmx.de

Marcus
Gama

    marcus_gama@uol.com.br

Tradução
2002-2004
Josef Weidendorfer
&FDLNotice;
2003-09-18
0.4.3

O &kcachegrind; é um Frontend do &kde; para o &cachegrind;, parte do &valgrind;.

KDE
kdesdk
Cachegrind
Valgrind
Auditoria

## 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 resumo da execução do programa. Após a examinação deste dos dados produzidos, você saberá onde e como otimizar o program. 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;. Em sistemas modernos, o tempo de execução é muito sensível a exploração das chamadas caches, pequenos e rápidos buffers que aceleram acessos repetitivos às mesmas células de memória. O &cachegrind; usa a emulação de processador do &valgrind; para executar o programa, e ele faz uma simulação de cache para rastrear os acessos à memória. O programa propriamente dito não precisa ser recompilado; ele pode usar bibliotecas compartilhadas e plugins, e as medidas de auditoria não influenciam os resultados do rastreamento. Os dados produzidos incluem 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. No entanto, uma desvantagem é o menor desempenho em virtude da emulação do processador, que é infelizmente cerca de 50 vezes mais lento.

O &calltree; é uma extensão do &cachegrind; que constrói um gráfico de chamadas do programa em tempo real, &ie; como as funções chamam umas às outras e quantos eventos ocorrem durante a execução de uma função. Além disso, os dados da auditoria a serem coletados podem ser separados por contexto de linhas de execução e sequência de chamadas. Ele pode fornecer dados de auditoria no nível instrução para permitir anotação do código desassemblado.

O &kappname; é uma ferramenta de visualização para os dados da auditoria gerados pelo &cachegrind; e &calltree;, com diversas possibilidades de visualização.

## Usando o &kcachegrind;

Atualmente, a ajuda on-line não contém muita informação. Por favor dê uma olhada na seção documentação do site web http://kcachegrind.sf.net. Além disso, cada widget no &kcachegrind; possui ajuda do tipo O que é isso.

### Exemplos Rápidos

Por favor dê uma olhada na seção de documentação do site web http://kcachegrind.sf.net para exemplos de início rápido.

### Recursos do &kcachegrind;

O &kcachegrind; suporta tipos de evento arbitrários, múltiplos dados de auditoria carregados simultaneamente, 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;