GUI to profilers such as Valgrind
Clone or download
l10n daemon script
Latest commit 192d6de Nov 18, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
cgview CMake cleanup Nov 23, 2016
converters Merge branch 'master' into frameworks Jun 15, 2015
doc Frameworks 5 is not an environment Dec 4, 2016
kcachegrind GIT_SILENT made messages (after extraction) Nov 18, 2018
libcore Fix minor typos and build instructions Nov 10, 2018
libviews Fix minor typos and build instructions Nov 10, 2018
pics Rename icons Mar 22, 2015
qcachegrind Fix minor EBN issues Sep 7, 2018
.arcconfig Add .arcconfig Aug 31, 2017
AUTHORS Imported doc and sources of KCachegrind. Aug 29, 2003
CMakeLists.txt remove obsolete LSM file Apr 12, 2017
COPYING Fix FSF address (except in trunk/kdesdk/scripts) Dec 21, 2005
COPYING.DOC Add license for docs Feb 18, 2013
ChangeLog Note in local ChangeLog about support for VG>3.7 Feb 2, 2012
INSTALL Fix minor typos and build instructions Nov 10, 2018
KnownBugs Allow new event types to be edited again. Sep 20, 2011
Mainpage.dox Add initialisation file for api documentation. May 5, 2008
Messages.sh Fix message extraction Nov 19, 2016
NEWS Imported doc and sources of KCachegrind. Aug 29, 2003
README Fix minor typos and build instructions Nov 10, 2018
README_DEVELOPER Added some further description. Jun 12, 2015
TODO Imported doc and sources of KCachegrind. Aug 29, 2003
kcachegrind.spec.cmake Moved KCG homepage to github.io Jun 15, 2015
qcg.pro Fix Qt version check for Qt-only build with qmake Dec 8, 2017
version.h.cmake Generate file Mar 11, 2006

README

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

* 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:

	sudo install -m 755 qcachegrind/qcachegrind /usr/local/bin
	sudo install -m 644 qcachegrind/qcachegrind.desktop \
		/usr/local/share/applications/
	sudo install -m 644 kcachegrind/hi32-app-kcachegrind.png \
		/usr/local/share/icons/hicolor/32x32/apps/kcachegrind.png
	sudo install -m 644 kcachegrind/hi48-app-kcachegrind.png \
		/usr/local/share/icons/hicolor/48x48/apps/kcachegrind.png


KCachegrind
------------

Requirements:
* 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



 Josef Weidendorfer