/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/developers/profiling.txt

  • Committer: Robert Collins
  • Date: 2007-07-15 15:40:37 UTC
  • mto: (2592.3.33 repository)
  • mto: This revision was merged to the branch mainline in revision 2624.
  • Revision ID: robertc@robertcollins.net-20070715154037-3ar8g89decddc9su
Make GraphIndex accept nodes as key, value, references, so that the method
signature is closer to what a simple key->value index delivers. Also
change the behaviour when the reference list count is zero to accept
key, value as nodes, and emit key, value to make it identical in that case
to a simple key->value index. This may not be a good idea, but for now it
seems ok.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Profiling
 
2
=========
 
3
 
 
4
Bazaar has some built-in support for collecting and saving profiling
 
5
information. In the simpliest case, the --lsprof option can be used as
 
6
shown below::
 
7
 
 
8
  bzr --lsprof ...
 
9
 
 
10
This will dump the profiling information to stdout before exiting.
 
11
Alternatively, the --lsprof-file option can be used to specify a filename
 
12
to save the profiling data into to. By default, profiling data saved to a
 
13
file is a pickled Python object making it possible to reload the data and
 
14
do with it what you will. For convenience though:
 
15
 
 
16
* if the filename ends in ".txt", it will be dumped in a text format.
 
17
 
 
18
* if the filename ends in ".callgrind", it will be converted to a format
 
19
  loadable by the KCacheGrind visualization tool.
 
20
 
 
21
Here is an example of how to use the --lsprof-file option in combination
 
22
with KCacheGrind to visualize what the "status" command is doing::
 
23
 
 
24
  bzr --lsprof-file status001.callgrind status
 
25
  kcachegrind status001.callgrind &
 
26
 
 
27
.. Note:: bzr also has a --profile option that uses the hotshot profiler
 
28
   instead of the lsprof profiler. The hotshot profiler can be useful
 
29
   though the lsprof one is generally recommended. See
 
30
   http://docs.python.org/lib/node795.html.
 
31
 
 
32
Note that to use --lsprof you must install the lsprof module, which you
 
33
can get with::
 
34
 
 
35
  svn co http://codespeak.net/svn/user/arigo/hack/misc/lsprof
 
36
 
 
37
 
 
38
Profiling locks
 
39
---------------
 
40
 
 
41
Bazaar can log when locks are taken or released, which can help in
 
42
identifying unnecessary lock traffic.  This is activated by the ``-Dlock``
 
43
global option.
 
44
 
 
45
This writes messages into ~/.bzr.log.
 
46
At present this only logs actions relating to the on-disk lockdir.  It 
 
47
doesn't describe actions on in-memory lock counters, or OS locks (which
 
48
are used for dirstate.)