Profiling tools typically produce a large amount of data. The wish to easily browse down and up the call graph, together with fast switching of the sorting mode of functions and display of different event types, motivates a GUI application to accomplish this task.

KCachegrind is a visualization tool for profile data fulfilling these wishes. Despite being programmed first with browsing the data from Cachegrind and Calltree in mind, there are converters available to be able to display profile data produced by other tools. In the appendix, a description of the Cachegrind/Callgrind file format is given.

Besides a list of functions sorted according exclusive or inclusive cost metrics, and optionally grouped by source file, shared library or C++ class, KCachegrind features various views for a selected function, namely:

  • a call-graph view, which shows a section of the call graph around the selected function,

  • a tree-map view, which allows nested-call relations to be visualized, together with inclusive cost metric for fast visual detection of problematic functions,

  • source code and disassembler annotation views, allowing to see details of cost related to source lines and assembler instructions.