GithubHelp home page GithubHelp logo

yuc8939 / kcachegrind Goto Github PK

View Code? Open in Web Editor NEW

This project forked from kde/kcachegrind

1.0 2.0 0.0 2.02 MB

GUI to profilers such as Valgrind

License: GNU General Public License v2.0

CMake 0.59% Shell 0.03% QMake 0.32% C++ 96.36% Perl 1.00% Python 1.15% PHP 0.53% Batchfile 0.02%

kcachegrind's Introduction

Fork Change Notes
* The fork owner does not use KCachegrind. All modifications are made
to QCachegrind only.
* Added per-call metrics on function list view. (Incl./Call and Self/Call)
* Always open the most recently opened prof file if the application is launched with no arguments.
* Changed default file name filter from callgrind* to *.prof.log.
* Added script for releasing distributable Windows application.

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.


* 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


* Qt5.x (x >=0) or Qt4.y (y >=5) (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 ../; 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 \
	sudo install -m 644 kcachegrind/hi32-app-kcachegrind.png \
	sudo install -m 644 kcachegrind/hi48-app-kcachegrind.png \


* KDE 4.3 or higher: kdelibs 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

 Josef Weidendorfer

kcachegrind's People


weidendo avatar montel avatar coolo avatar arnolddumas avatar dfaure avatar chehrlic avatar tsdgeos avatar andrewcoles avatar caslav-ilic avatar aseigo avatar lueck-b avatar yurchor avatar yuc8939 avatar aleixpol avatar jriddell avatar thiagomacieira avatar uwolfer avatar kampfschlaefer avatar icefox avatar heirecka avatar er-vin avatar tosky avatar sandsmark avatar tronical avatar milianw avatar neundorf avatar apaku avatar woebbeking avatar dnadlinger avatar hsitter avatar


Mao Yuwei avatar


James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.