~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/costs.txt

 * Various microoptimisations to knit and gzip - reducing function call 
   counts in inner loops, reducing double-handling of data, increasing
   knit header parsing performance, removing 'list.index' calls
   completely etc.
 * changes the data format of knits to remove an extraneous \n in the 
   compressed content data, which lets it be trivially pulled into 
   memory in a single 'readlines()' call.
 * changes the knit repository to use unannotated knits for inventory,
   revisions, and signatures. Also turns off delta-compression for
   revisions and signatures.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
Costs
2
 
=====
3
 
 
4
 
User thought is most expensive.  User time spent waiting is next.
5
 
Developer time for the version control system is also relatively
6
 
expensive.  
7
 
 
8
 
Machine resources are cheap.  In particular; disk is generally very
9
 
cheap; an ordinary programmer earns enough to buy hundreds of GB of
10
 
disk per day.  However, it is sometimes limited, as on a laptop.
11
 
Therefore it is generally OK to trade off disk space for anything
12
 
else, but it should be possible to be compact.
13
 
 
14
 
Network round trips are very bad.
15
 
 
16
 
Consider scalability also; avoid anything worse than O(n).  Try to
17
 
avoid anything that needs e.g. to hold the whole tree in memory at any
18
 
time, or to hold the entire history of the project.
19
 
 
20
 
 
21