{K,Q}Cachegrind is a KDE/Qt GUI to visualize profiling data.
It’s mainly used as visualization frontend for data measured
by Cachegrind/Callgrind tools from the Valgrind package, but
there are converters for other measurement tools available.
Features
direct support for profiles generated by Cachegrind/Callgrind
support for arbitrary event types and derived event types
sorted function list, with grouping according to ELF object/source
file/symbol namespace (such as C++ classes)
correct handling of recursive cycles (similar to GProf)
various visualization views for a selected function, such as
treemap in caller/callee direction
call graph around function
source & assembly annotation
Hmm. What is stuff good for?
Any work in improving the performance of a program should be
started with measuring the performance characteristics of the
optimized binary, using representative input data. This process
is called “Profiling”. Any other way for performance optimization
usually just wastes developer time.
Profile measurements show whether optimization is needed at all,
and what improvement can be expected. Further, it pinpoint at
functions and source lines where most time is spent, i.e. where an
improvement has most influence on allover runtime.
{K,Q}Cachegrind visualizes profile measurement data. Example of an
easy to use profile measurement tool (no source modifications and
recompilation is required, as well as no root access) are the
cache simulators Cachegrind and Callgrind from the Valgrind toolset.
While {K,Q}Cachegrind directly supports the formats of these
profiling tools, converters are available to allow to import data
from other profiling tools, too.
Compilation and Installation
-===========================
QCachegrind
Requirements:
Qt5.x (x >=2) (earlier versions not tested)
Any platform supported by Qt (Linux, Windows, Mac OS X, …)
Compilation (from base directory):
qmake; make
To not build in the source directories, do:
mkdir build; cd build; qmake ../qcg.pro; make
The build includes the command line tool “cgview”.
Copy the resulting “qcachegrind” binary from the build directory into
your $PATH. For better desktop integration, it should be enough to
copy the .desktop file and icons into standard places, such as:
KF 5.12 or higher: Frameworks development packages (libs & headers)
CMake
Commands (from base directory):
cmake .; make; make install
To not build in the source directories, do:
mkdir build; cd build; cmake ..; make; make install
The build also compiles the command line tool “cgview” and “qcachegrind”,
the Qt-only version of KCachegrind. However, these are not installed.
If you want to also install qcachegrind, see instructions above.
Usage & Help
-===========
{K,Q}Cachegrind has detailed “What’s this?” help for
each GUI part. For further help, see quick start pages
on kcachegrind.sf.net
KCachegrind / QCachegrind -========================
{K,Q}Cachegrind is a KDE/Qt GUI to visualize profiling data. It’s mainly used as visualization frontend for data measured by Cachegrind/Callgrind tools from the Valgrind package, but there are converters for other measurement tools available.
Features
Hmm. What is stuff good for?
Any work in improving the performance of a program should be started with measuring the performance characteristics of the optimized binary, using representative input data. This process is called “Profiling”. Any other way for performance optimization usually just wastes developer time. Profile measurements show whether optimization is needed at all, and what improvement can be expected. Further, it pinpoint at functions and source lines where most time is spent, i.e. where an improvement has most influence on allover runtime.
{K,Q}Cachegrind visualizes profile measurement data. Example of an easy to use profile measurement tool (no source modifications and recompilation is required, as well as no root access) are the cache simulators Cachegrind and Callgrind from the Valgrind toolset. While {K,Q}Cachegrind directly supports the formats of these profiling tools, converters are available to allow to import data from other profiling tools, too.
Compilation and Installation -===========================
QCachegrind
Requirements:
Compilation (from base directory):
To not build in the source directories, do:
The build includes the command line tool “cgview”.
Copy the resulting “qcachegrind” binary from the build directory into your $PATH. For better desktop integration, it should be enough to copy the .desktop file and icons into standard places, such as:
KCachegrind
Requirements:
Commands (from base directory):
To not build in the source directories, do:
The build also compiles the command line tool “cgview” and “qcachegrind”, the Qt-only version of KCachegrind. However, these are not installed. If you want to also install qcachegrind, see instructions above.
Usage & Help -===========
{K,Q}Cachegrind has detailed “What’s this?” help for each GUI part. For further help, see quick start pages on kcachegrind.sf.net
Josef Weidendorfer