summaryrefslogtreecommitdiff
path: root/HACKING
diff options
context:
space:
mode:
authorPhilip Withnall <philip@tecnocode.co.uk>2012-06-24 17:55:43 +0100
committerPhilip Withnall <philip@tecnocode.co.uk>2012-06-27 20:38:43 +0100
commit3deab10a238fb77a68f96fb74ce75a4f37c347a8 (patch)
tree38de8150eff93e482772af22d97fd5bb41af481e /HACKING
parent93d2f1b947e98fe87ceacc2a26dcd114429e16ad (diff)
core: Add a profiling API and implement some profiling points
The API outputs messages in the format accepted by Federico’s plot-timeline.py (http://people.gnome.org/~federico/news-2006-03.html#timeline-tools) so graphs can easily be generated by running: strace -ttt -f -o /tmp/logfile folks-inspect python plot-timeline.py -o graph.png /tmp/logfile So far, the BackendStore, IndividualAggregator and Backend and PersonaStore classes for all the backends have been annotated.
Diffstat (limited to 'HACKING')
-rw-r--r--HACKING15
1 files changed, 15 insertions, 0 deletions
diff --git a/HACKING b/HACKING
index b25573d6..6db61e0c 100644
--- a/HACKING
+++ b/HACKING
@@ -127,3 +127,18 @@ hooks for each test. Simply run:
make -C tests/<dir> <test name>.gdb
Then use gdb as normal.
+
+Profiling folks
+===============
+
+Folks has various profiling points throughout its startup code, in order to be
+able to profile the startup process. In order to use this:
+ 1. Compile folks with --enable-profiling.
+ 2. strace -ttt -f -o /tmp/logfile folks-inspect # or some other folks program
+ 3. python plot-timeline.py -o output.png /tmp/logfile
+ 4. Examine output.png for obvious problems
+
+This is based on Federico Mena Quintero’s plot-timeline.py, described on:
+http://people.gnome.org/~federico/news-2006-03.html#timeline-tools. The Python
+script itself can be downloaded from
+http://gitorious.org/projects/performance-scripts.