Kapitel 5. Fragen und Antworten

Berichten Sie über Probleme und Wünsche auf der Internetseite http://bugs.kde.org.

Dieses Dokument wurde seit der Installation möglicherweise bearbeitet. Etwaige neuere Versionen dieser Dokumentation finden Sie unter http://docs.kde.org/.

5.1. Wozu ist KCachegrind gut?
5.2. Was ist der Unterschied zwischen Incl. und Self?
5.3. Die Werkzeug- und Menüleiste ist bei mir sehr spartanisch. Ist das normal?
5.4. Wenn ich in der Aufrufgraph-Ansicht auf eine Funktion klicke, werden für main() die gleichen Kosten angezeigt, wie für die gewählte Funktion. Sollten diese nicht immer 100 % betragen?

5.1.

Wozu ist KCachegrind gut?

KCachegrind ist nützlich für die späte Software-Entwicklungs-Phase Profiling. Wenn man keine Anwendungen entwickelt, dann braucht man KCachegrind nicht.

5.2.

Was ist der Unterschied zwischen Incl. und Self?

Dies sind Kosteneigenschaften für Funktionen hinsichtlich einiger Ereignistypen. Da sich Funktionen gegenseitig aufrufen können, ist es sinvoll, zwischen Kosten zu unterscheiden, die die Funktion selbst verursacht (Exklusivkosten) und solchen, die alle aufgerufenen Funktionen berücksichtigt (Inklusivkosten).

Also werden Sie für main() immer Inklusivkosten von nahezu 100 % haben, wogegen die Exlusivkosten vernachlässigbar sind, wenn die eigentliche Arbeit in einer anderen Funktion erledigt wird.

5.3.

Die Werkzeug- und Menüleiste ist bei mir sehr spartanisch. Ist das normal?

Ihre KCachegrind-Installation ist wahrscheinlich fehlerhaft. Es wird empfohlen, das Programm mit dem Installationspräfix-Pfad Ihrer systemweiten KDE-Installation zu übersetzen, wie z. B. configure --prefix=/opt/kde4; make install. Wenn Sie einen anderen Ordner, z. B. $HOME/kde wählen, müssen Sie die Umgebungsvariable KDEDIR auf diesen Ordner setzen, bevor Sie KCachegrind ausführen.

5.4.

Wenn ich in der Aufrufgraph-Ansicht auf eine Funktion klicke, werden für main() die gleichen Kosten angezeigt, wie für die gewählte Funktion. Sollten diese nicht immer 100 % betragen?

Sie haben eine Funktion unterhalb von main() gewählt, die geringere Kosten als main() selbst hat. Für jede Funktion wird nur der Teil der Kosten angezeigt, der von der aktivierten Funktion verursacht wird. Daher können die Kosten für eine Funktion nie höher sein als die der aktivierten Funktion.