/brz/remove-bazaar

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

  • Committer: John Arbash Meinel
  • Date: 2009-08-07 03:29:09 UTC
  • Revision ID: john@arbash-meinel.com-20090807032909-9xg0nwcqoxi9763y
Removing the min(keys) and max(keys) calls saves 100ms in the inner loop
(get_ancestry() over all of bzr.dev in a single index is 347ms => 245ms).
The current breakdown is roughly:
0.4789      0.1127   bzrlib.btree_index:1129(get_ancestry)
0.0418      0.0418   +<method 'update' of 'set' objects>
0.0480      0.0325   +bzrlib.btree_index:966(_multi_bisect_right)
0.0274      0.0274   +<method 'difference' of 'set' objects>
0.0081      0.0081   +<method 'add' of 'set' objects>
0.0075      0.0075   +<sorted>
0.0048      0.0004   +bzrlib.btree_index:899(_get_internal_nodes)
0.2275      0.0004   +bzrlib.btree_index:917(_get_leaf_nodes)
0.0002      0.0002   +<method 'extend' of 'list' objects>
0.0009      0.0001   +bzrlib.btree_index:1375(key_count)

So we have a bit of just general overhead (112ms), and then
50ms spent in _multi_bisect_right, which we could move to a C extension.
50ms in set.update and 28ms in set.difference
227ms in reading and parsing the 222 nodes from disk.
It seems a little unfortunate that parsing is the primary overhead,
but previous investigation did not reveal much fat that could be trimmed.

It is 3.8MB of uncompressed data that is being parsed. That's got to
take some amount of time. 200ms might be reasonable.
Which would hint that the only way to speed it up would be:
1) a different format
2) don't read the whole thing, stupid :)
Filename Latest Rev Last Changed Committer Comment Size
..
__init__.py 4537.3.1 16 years ago John Arbash Meinel Start working on tests that get_record_stream give 4.5 KB Diff Download File
test_add_inventory.py 4280 16 years ago Canonical.com Patch Queue Manager (jam) Change _fetch_uses_deltas = False for CHK re 2.1 KB Diff Download File
test_add_revision.py 4280 16 years ago Canonical.com Patch Queue Manager (jam) Change _fetch_uses_deltas = False for CHK re 2 KB Diff Download File
test_add_signature_text.py 4280 16 years ago Canonical.com Patch Queue Manager (jam) Change _fetch_uses_deltas = False for CHK re 2 KB Diff Download File
test_all_revision_ids.py 4183.7.1 16 years ago Sabin Iacob update FSF mailing address 2.6 KB Diff Download File
test_break_lock.py 4449.3.27 16 years ago Martin Pool More test updates to use CannedInputUIFactory 1.8 KB Diff Download File
test_check.py 4183.7.1 16 years ago Sabin Iacob update FSF mailing address 1.7 KB Diff Download File
test_default_stacking.py 4360.5.4 16 years ago Robert J. Tanner Merge 1.15.1 back to trunk 1.4 KB Diff Download File
test_fetch.py 4392.2.2 16 years ago John Arbash Meinel Add tests that ensure we can fetch branches with g 6.5 KB Diff Download File
test_get_record_stream.py 4537.3.2 16 years ago John Arbash Meinel Lots of tests which expose bug #393366 and bug #39 8.2 KB Diff Download File
test_get_rev_id_for_revno.py 4419.2.9 16 years ago Andrew Bennetts Add per_repository_reference test for get_rev_id_f 2 KB Diff Download File
test_initialize.py 4401.1.1 16 years ago John Arbash Meinel Split out the auto-upgrade logic inside CreateRepo 2.2 KB Diff Download File
test_unlock.py 4379.2.2 16 years ago John Arbash Meinel Change the Repository.add_fallback_repository() co 3 KB Diff Download File