KCachegrind
===========

Profiling, i.e. determinating the most time consuming execution
parts, is an important last step when developing applications.
KCachegrind visualizes this data, generated by a profiling tool,
in various ways.

Integrating a call graph view, tree map visualization (a way
to visualize tree structure with a metric), source and
assembler annotation allows for convient browsing in the profiling
results, pinpointing quickly to problematic code regions.

The profiling tool probably most often used is Callgrind, a tool
using the Valgrind instrumentation framework. This allows for
detailed, annotated call graphs of applications without access to
hardware features like performance counters. Profiling does not 
need any preparation, can cope with shared libraries and plugin
architectures, and results are not influenced by the measurement
because of the synthetic events from the cache simulator.
However, a disadvantage is slower profile runs, factor 20-100.

A more hardware related, advanced tool is OProfile. KCachegrind comes
with a converter script to allow browsing the data delivered by
this tool. There are other converters for various profilers in the
converters/ directory, too.



Requirements

  For Callgrind on Valgrind:
    - x86, Linux
    - Valgrind 2.x, Callgrind (e.g. 0.9.12).

  For KCachegrind:
    - a KDE enabled platform (KDE 3.x)



Compilation and Installation

  ./configure --prefix=<KDE base directory>
  make
  make install



Further resources

  Homepage:
  http://kcachegrind.sourceforge.net/cgi-bin/show.cgi



Happy Profiling,
 Josef Weidendorfer
