KCachegrind - Profiling Visualization

Home / Download

Bugs & Wishes

Project Page

Current Releases

KCachegrind is part of KDE since KDE 3.2. Interim releases, which are compatible with KDE 3.x (starting from 3.0.x), are available here.

  • KCachegrind 0.4.6 (27.9.05)

    • Lot of bug fixes
    • Compiles 64bit clean (e.g. on x86-64)
    • Includes all features from 0.4.6kde (KDE 3.5), like
    • Incremental search for symbol names in function list
    • ...

  • Callgrind 0.9.12 (4.8.05)

    • This release is a bugfix release
    • Fixes for various signal handler and threading bugs.
    • Detect cache parameters for Pentium M Dothan (2MB L2)
    • Fix for failing to output data if client program closes all file descriptors
    • Cache-Reuse: Instead of "TUse" give "AcCost", an cost for one access (= miss count / accesses)
    • Compile fix for gcc 2.95.3

  • Callgrind 0.9.11 (1.4.05)

    • Support for Valgrind 2.4.0.
    • Fix for handling of function name patterns on command line (exact matching, and wildcards now fully supported)
    • Cache-Reuse metrics. Use --cacheuse=yes and metric "SLoss" to locate badly aligned/layouted data structures. This shows the wasted amount of memory channel bandwidth, as it is the amount of data which was loaded into cache but actually never used. Experimental!

  • KCachegrind 0.4.6kde is part of KDE 3.4 (package kdesdk). It's advantage is translation to many languages.

  • KCachegrind 0.4.5 (28.4.04). Download instructions below.

    Minor Release. Changes to 0.4.4 and from version in KDE 3.2.x:

    • Converter scripts for OProfile, PERL, and PHP
    • Switching between multiple visualization layouts
    • Call graph can be exported as Image (PNG)
    • Simultaneous display of 2 event types in Call and Annotation Views
    • Terminology corrections, bug fixes ...

  • Callgrind 0.9.10
    • Fix crash when dumping (introduced with 0.9.8)
    • Fix bug with multiple dlopened libraries (same lib got new counters every time)
    • Fix bug with command line given in dumps: Always use args from program start (args can change)
    • Clarified option help
    • Cache simulator defaults to disabled now.
    • Modularize the cache simulator (via func.table)
    • Cache simulator option "--simulate-wb" added. This changes L2 simulation to write-back behavior, i.e. modified cache lines get flag "dirty" and only are written at eviction time. This adds "dirty miss" events I2dmr, D2dmr, D2dmw. Using these in cycle estimation formula gives more accurate time estimation, as "dirty misses" cause doubled bus traffic.
    • Allow callgrind verbosity level to be set with callgrind_control
    • Track dynamic allocations. First feature: "--collect-alloc" with "--collect-data" gives you new counters "freeSize" and "freeCount", i.e. the number of calls to free and bytes freed (Warning: experimental!)

  • Callgrind 0.9.9 (3.9.04)

    • Support for Valgrind stable release 2.2.0
    • Fix nonsense output with --dump-instr=yes (introduced in 0.9.8)
    • Fix overwriting of dumps with multiple threads (introduced in 0.9.8)
    • Fix: Overwriting defaults for cache properties via command line (e.g. --L2) works again (introduced in 0.9.8)

  • Callgrind 0.9.8 (20.8.04)

    • Rename to "Callgrind" (was "Calltree"). Long overdue because there is an older GLPed software named calltree from Joerg Schilling, which gets the static call-graph from C source code.
    • Restructuring of code for arbitrary cost counts. Try out
      Use --simulate-cache=no to be able to load the data into KCachegrind.
    • Support for valgrind developer release 2.1.2
    • Instrumentation can be arbitrarily switched on/off (see HTML manual for details)
    • Modify instructions now cause a "Write" instead of "Read"
    • JIFZ handling removed (same as in Cachegrind)


Calltree and KCachegrind are open source software, and licensed under GPL V2. More details can be found here.

Precompiled Binaries

KCachegrind 0.4.6 is part of KDE 3.4 (package kdesdk), and KCachegrind 0.4.5 part of KDE 3.3. If your distribution includes one if these KDE versions, chances are good that you already have it installed, or that a binary package is provided.

I do not provide binaries of KCachegrind or Callgrind/Calltree myself, but

  • Suse 9.x/8.2 includes packages for KCachegrind and Calltree. On the Suse site, you get binaries for Suse 8.0 and 8.1, too.
  • Fedora core 3 has Callgrind.
  • Mandrake seems to have packages in their distribution.
  • There are packages for Debian, done by Philipp Frauenfelder.
  • Packages for Red Hat can be found on
  • Gentoo includes KCachegrind, too.
If you know other sources, or have corrections, please send me an EMail.

Download Source


Installation instructions can be found here.


Last site update: 27.9.2005