/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/implementation-notes.txt

  • Committer: John Arbash Meinel
  • Date: 2009-10-17 04:43:14 UTC
  • mto: This revision was merged to the branch mainline in revision 4756.
  • Revision ID: john@arbash-meinel.com-20091017044314-nlvrrqnz0f2wzcp4
change the GroupcompressBlock code a bit.
If the first decompress request is big enough, just decompress everything.
And when we do that, let go of the decompressobj.

After digging through the zlib code, it looks like 1 zlib stream object
contains a 5kB internal state, and another 4*64kB buffers. (about 260kB
of total state.)
That turns out to be quite a lot if you think about it.


In the case of branching a copy of 'bzr.dev' locally, this turned out
to be 383MB w/ bzr.dev and 345MB w/ only this patch. (So ~11% of peak).

Also, this was 'unreferenced' memory, because it is hidden in the
zlib internal state in working buffers. So it wasn't memory that Meliae
could find. \o/.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Implementation notes
 
2
====================
 
3
 
 
4
.. toctree::
 
5
   :hidden:
 
6
 
 
7
   btree_index_prefetch
 
8
   last-modified
 
9
   content-filtering
 
10
   lca_tree_merging
 
11
 
 
12
 
 
13
* `BTree Index Prefetch <btree_index_prefetch.html>`_ |--| How bzr decides
 
14
  to pre-read extra nodes in the btree index.
 
15
 
 
16
* `Computing last_modified values <last-modified.html>`_ for inventory
 
17
  entries
 
18
 
 
19
* `Content filtering <content-filtering.html>`_
 
20
 
 
21
* `LCA Tree Merging <lca_tree_merging.html>`_ |--| Merging tree-shape when
 
22
  there is not a single unique ancestor (criss-cross merge).
 
23
 
 
24
 
 
25
.. |--| unicode:: U+2014
 
26
 
 
27
..
 
28
   vim: ft=rst tw=74 ai