Chapter 5. Questions and Answers

This document may have been updated since your installation. You can find the latest version at http://docs.kde.org/.

5.1. What is KCachegrind for? I have no idea.
5.2. What is the difference between Incl. and Self?
5.3. The toolbar and menubar of my KCachegrind look spartan. Is this normal?
5.4. If I double-click on a function down in the Call Graph view, it shows for function main() the same cost as the selected function. Isn't this supposed to be constant at 100%?

5.1.

What is KCachegrind for? I have no idea.

KCachegrind is a helpful at a late stage in software development, called profiling. If you don't develop applications, you don't need KCachegrind.

5.2.

What is the difference between Incl. and Self?

These are cost attributes for functions regarding some event type. As functions can call each other, it makes sense to distinguish the cost of the function itself (Self Cost) and the cost including all called functions (Inclusive Cost). Self is sometimes also referred to as Exclusive costs.

So, for example, for main(), you will always have an inclusive cost of almost 100%, whereas the self cost is negligible when the real work is done in another function.

5.3.

The toolbar and menubar of my KCachegrind look spartan. Is this normal?

KCachegrind has probably been installed incorrectly on your system. It is recommended to compile it with the installation prefix set to your system-wide KDE base folder, like configure --prefix=/opt/kde4; make install. If you choose another folder, like $HOME/kde, you should set the environment variable KDEDIR to this folder before running KCachegrind.

5.4.

If I double-click on a function down in the Call Graph view, it shows for function main() the same cost as the selected function. Isn't this supposed to be constant at 100%?

You have activated a function below main(), which obviously costs less than main() itself. For every function, it is shown only the part of the cost spent while the activated function is running; that is, the cost shown for any function can never be higher than the cost of the activated function.