Capítulo 2. Usando o KCachegrind

Gerando Dados para Visualizar

Primeiro, devemos gerar dados de desempenho medindo os aspectos das características em tempo de execução de um aplicativo, usando uma ferramenta de auditoria. O KCachegrind propriamente dito não inclui nenhuma ferramenta de auditoria, mas pode ser melhor aproveitado em conjunto com o Callgrind, e usando um conversor, pode também ser usado para visualizar dados produzidos com o OProfile. Apesar do escopo deste manual não ser o de documentar como auditar com estas ferramentas, a próxima seção fornece um pequeno tutorial para início rápido que você pode tomar como base.

Callgrind

O Callgrind é uma parte do Valgrind. Observe que ele era anteriormente chamado de Calltree, mas o nome foi abandonado.

O uso mais comum é anteceder a linha de comando para iniciar o seu aplicativo com o valgrind --tool=callgrind, como por exemplo

valgrind --tool=callgrind programa argumentos

Quando o programa terminar, será gerado um arquivo callgrind.out.pid e que poderá ser carregado no KCachegrind.

Um uso mais avançado é gerar dados de auditoria sempre que uma determinada função de seu aplicativo é chamada. Por exemplo, para o Konqueror, para ver dados de auditoria somente para renderização de uma página web, você pode decidir gerar os dados sempre que você selecionar o item de menu VerRecarregar. Isto corresponde a uma chamada ao KonqMainWindow::slotReload. Use

valgrind --tool=callgrind --dump-before=KonqMainWindow::slotReload konqueror

Isto produzirá múltiplos arquivos de dados de auditoria com uma sequência numérica crescente no final dos nomes de arquivo. Um arquivo sem um número no final (terminando somente no PID do processo) também será produzido. Carregando este arquivo no KCachegrind, todos os outros serão também carregados, e podem ser vistos na Visão Geral de Partes e lista de Partes.

OProfile

O OProfile está disponível em sua página na internet. Siga as instruções de instalação na página Web mas, antes disso, verifique se a sua distribuição não o oferece já como um pacote (como a SuSE®).

A análise ao nível do sistema só é permitida para o usuário 'root', uma vez que todas as ações do sistema poderão ser observadas. Assim, as seguintes ações terão que ser feitas como 'root'. Primeiro, configure o processo de análise, usando a GUI oprof_start ou a ferramenta da linha de comando opcontrol. A configuração normal seria o modo de temporização (TBS, ver a introdução). Para iniciar a medida, execute o opcontrol -s. Depois execute o aplicativo em que está interessado e, a seguir, invoque um opcontrol -d. Isto irá apresentar os resultados das medidas nos arquivos sob a pasta /var/lib/oprofile/samples/. Para ser capaz de visualizar os dados no KCachegrind, execute numa pasta vazia:

opreport -gdf | op2callgrind

Isto irá produzir uma quantidade de arquivos, um por cada programa que estava rodando no sistema. Cada um deles poderá ser carregado no KCachegrind por si só.