summaryrefslogtreecommitdiff
path: root/doc/using_callgrind.txt
blob: b6196b00e0b9bba00dc91d6f8facd1bf3818bb03 (plain)
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
Profiling Ardour with Callgrind
===============================

Prerequisites
-------------

*  valgrind version 3.7.0 or later (current 3.9.0)
*  kcachegrind 0.6 or later (current: 0.7.4)


Basic Profiling
---------------

1.  Compile ardour with debug symbols [1].
2.  `cd gtk2_ardour`
3.  start ardour using `./arcall`

Load a session, ideally use the 'Dummy' (non realtime) backend.

The `arcall` script does not start profiling immediately,
to start profiling, in a second terminal run

4. `callgrind_control -i on`

[do operations in Ardour that should be profiled]

5. `callgrind_control -i off`

6. quit ardour

7. run  `kcachegrind calgringd.out.<PID>`

NB. There will be multiple files calgringd.out.<PID>-<Thread-ID> for every run,
only load the main file without the dash into

8. clean-up: `rm calgringd.out.*`


Advanced Usage
--------------

Edit gtk2_ardour/arcall, add/remove options as needed.
see http://valgrind.org/docs/manual/cl-manual.html for further information.

---

[1] ideally an optimized built with debug-symbols (-g) is used for profiling,
however the ardour wscript does not yet offer that configuration option.
However, a default (non optimized build) does contain debug-symbols.