Capítulo 5. Perguntas e respostas

Este documento pode ter sido atualizado depois da sua instalação. Você pode encontrar a última versão em http://docs.kde.org/.

5.1. Para que serve o KCachegrind? Eu não faço a mínima ideia.
5.2. Qual é a diferença entre o Inclusivo e o Próprio?
5.3. A barra de ferramentas e menu do meu KCachegrind está tão esquisita. Isto é normal?
5.4. Se eu der um duplo-clique em uma função abaixo da visão do Gráfico de Chamadas, ele mostra para a função main() o mesmo custo da função selecionada. Isto não é supostamente para ser 100% constante?

5.1.

Para que serve o KCachegrind? Eu não faço a mínima ideia.

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.

5.2.

Qual é a diferença entre o Inclusivo e o Próprio?

Estes são atributos de custo para funções relativos a algum tipo de evento. Como funções podem chamar outras, faz sentido distinguir o custo da função propriamente dita (Custo Próprio) e o custo incluindo todas as chamadas de funções (Custo Inclusivo). Próprio é algumas vezes também referenciado como custo Exclusivo.

Assim, por exemplo para o main(), você sempre terá um custo inclusivo de cerca de 100%, visto que o custo próprio e negligenciado quando o trabalho real é feito em outra função.

5.3.

A barra de ferramentas e menu do meu KCachegrind está tão esquisita. Isto é normal?

O KCachegrind está provavelmente mal instalado no seu sistema. Recomenda-se que o compile com o prefixo de instalação igual à sua pasta de base do sistema KDE, como por exemplo o comando configure --prefix=/opt/kde4; make install. Se escolher outra pasta, como a $HOME/kde, você deverá apontar a variável de ambiente KDEDIR para esta pasta antes de executar o KCachegrind.

5.4.

Se eu der um duplo-clique em uma função abaixo da visão do Gráfico de Chamadas, ele mostra para a função main() o mesmo custo da função selecionada. Isto não é supostamente para ser 100% constante?

Você ativou uma função sob a main() com um custo menor que o da main(). Para qualquer função, só é apresentada essa parte do custo completo da função, sendo ela dispendida enquanto a função ativa está em execução, isto é, o custo mostrado para qualquer função nunca pode ser maior que o custo da função ativada.