Bugs & Wishes

This is the homepage of the profiling tool Callgrind and the profile data visualization KCachegrind. Both are licensed under GPL V2.

Callgrind uses runtime instrumentation via the Valgrind framework for its cache simulation and call-graph generation. This way, even shared libraries and dynamically opened plugins can be profiled. The data files generated by Callgrind can be loaded into KCachegrind for browsing the performance results. But there is also a command line tool in the package to get ASCII reports from data files without the need to use KCachegrind.

The format of Callgrind output is documented here. With conversion scripts, KCachegrind is able to visualize output of other profilers like OProfile, a system-wide profiler for Linux using statistical sampling with hardware performance counters. There also exist converters for profiling output of Python, PHP and PERL.

Current Releases

  • KCachegrind 0.7.4 (includes qcachegrind, just needs Qt4 or Qt5)
  • for Callgrind, install Valgrind 3.8.x


  • Callgrind: part of Valgrind (supports Linux on x86, amd64, arm7, ...)
  • KCachegrind:
    • Libraries and development files for KDE 4.4 or higher
    • Commands 'dot' (GraphViz) for call graph, and 'objdump' (BinUtils) for assembler view (these are runtime requirements, not needed for compilation)
  • QCachegrind (included in KCachegrind sources)
    • Qt5 or Qt4.x (x>=4) or higher
    • 'dot' binary for call graph and 'objdump' binary for annotated machine code


Old News...

Author and Maintainer

Josef Weidendorfer, Josef.Weidendorfer@gmx.de