File: README.md

package info (click to toggle)
bornagain 23.0-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 103,936 kB
  • sloc: cpp: 423,131; python: 40,997; javascript: 11,167; awk: 630; sh: 318; ruby: 173; xml: 130; makefile: 51; ansic: 24
file content (63 lines) | stat: -rw-r--r-- 2,320 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# maintainers, attention: if this page is moved, then update the link at
# http://apps.jcns.fz-juelich.de/redmine/projects/bornagain/wiki

This directory contains different scripts for running code profiling utilities.

The goal of these utilities is to determine the speed of a particular
operation/function/algorithm, and to find bottlenecks in program flow.

There are several ways of code profiling:

----------------------------------------------------------
Profiling with valgrind
----------------------------------------------------------

1) Compile BornAgain as usuall and simply run
./run_valgrind.sh

* Compile your application in debug mode
* Generate log file with performance information using valgrind
> valgrind --tool=callgrind -v --dump-every-bb=10000000 --dump-instr=yes --trace-jump=yes ./App commandline
> valgrind --logfile=valgrind.output --num-callers=6 --leak-check=yes  ./App commandline
>>where 'App' is the name of executable, 'commandline' is command line parameters

* Use _kcachegrind_ (from KDE distro) to visualize obtained log file
_kcachegrind_ exists in Linux, for Mac _kcachegrind_ (KDE based) or _qcachegrind_ (pure Qt based) can be installed/compiled as described in
http://langui.sh/2011/06/16/how-to-install-qcachegrind-kcachegrind-on-mac-osx-snow-leopard/

  In my case I was able to compile, but the program is not stable and sometime crashes.

  See also http://kcachegrind.sourceforge.net/html/Usage.html

----------------------------------------------------------
Profiling with gperftool
----------------------------------------------------------

1) gperftool should be installed
download code from http://code.google.com/p/gperftools/
./configure --prefix=/opt/local; make; make install

2) BornAgain should be compiled with GPERFTOOLS in config
make distclean
qmake CONFIG+=GPERFTOOLS
make

3) run profiling
run_gperftools.sh

*) When compiled with GPERFTOOLS option, profiling with valgrind (callgrind) wont work.

----------------------------------------------------------
Profiling with perf
----------------------------------------------------------

Under Linux.

Install Debian package linux-perf.

echo "-1" >/proc/sys/kernel/perf_event_paranoid

perf stat <any performance test>

perf record -o /tmp/perf.out <any performance test>
perf report -i /tmp/perf.out