2541.2.1
by Robert Collins
Document contributing to the performance drive somewhat. |
1 |
Contributing to the performance drive |
2 |
===================================== |
|
3 |
||
4 |
.. contents:: :local: |
|
5 |
||
6 |
What needs doing? |
|
7 |
----------------- |
|
8 |
||
9 |
There is plenty of code to write. Testers are always welcome for experimental |
|
10 |
changes. In general, pick a BLUE node from performance.png which has nothing |
|
11 |
pointing at it that is also BLUE, and start working on that. |
|
12 |
||
13 |
Status |
|
14 |
------ |
|
15 |
||
16 |
The performance drive is well under way. At the moment we are finalising the |
|
17 |
analysis documents from the sprint at London. If you were not at that sprint, |
|
18 |
please read the analysis documents - consider them living documents much like |
|
19 |
code, to be patched and corrected. |
|
20 |
||
21 |
If you were at the London performance sprint, please help finish documenting |
|
22 |
the core command analysis work. The core commands that have not been analysed |
|
23 |
are listed in performance.dot as the BLUE nodes. For quick reference: |
|
24 |
||
25 |
* status |
|
26 |
* log |
|
27 |
* diff |
|
28 |
* uncommit |
|
29 |
* missing |
|
30 |
* update |
|
31 |
* cbranch |
|
32 |
||
33 |
Once a given command has had its analysis created, the bottleneck of 'folk who |
|
34 |
attended London' is removed. The next task is in general the creation of a |
|
35 |
targeted API stack for that command. This API stack is done by starting with |
|
36 |
the cmd object in ``builtins.py`` and cleaning up the code so that the API used |
|
37 |
there is one which allows an implementation matching the analysis document. |
|
38 |
This then gets repeated, iteratively, on each of the called API's, until all |
|
39 |
the current slow code is cleanly abstracted behind the ``Tree``, ``Branch`` and |
|
40 |
``Repository`` API's. |
|
41 |
||
42 |
Resources |
|
43 |
--------- |
|
44 |
||
45 |
The usual resources for contributing to bzr - the mailing list, wiki, bug |
|
46 |
tracker and IRC channels are documented in the HACKING_ document. Additionally |
|
47 |
there are members of the project focusing on performance at the moment who are |
|
48 |
willing to mentor contributors on performance issues. Just send a mail to the |
|
49 |
list asking for mentoring on the step of the performance plan you want to help |
|
50 |
with. |
|
51 |
||
52 |
.. _HACKING: HACKING.htm |