/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 4332.3.32 16 years ago Robert Collins Merge bzr.dev. 3.7 KB Diff Download File
test_add.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 6.6 KB Diff Download File
test_add_reference.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 4.4 KB Diff Download File
test_annotate_iter.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 7.9 KB Diff Download File
test_basis_inventory.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 3.3 KB Diff Download File
test_basis_tree.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 2.9 KB Diff Download File
test_break_lock.py 4449.3.31 16 years ago Martin Pool Merge trunk 2.9 KB Diff Download File
test_changes_from.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 2.1 KB Diff Download File
test_check.py 4332.3.33 16 years ago Robert Collins workingtree_implementations has been renamed. 1.9 KB Diff Download File
test_commit.py 4463.1.2 16 years ago Martin Pool merge trunk 24.8 KB Diff Download File
test_content_filters.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 6.6 KB Diff Download File
test_eol_conversion.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 14.2 KB Diff Download File
test_executable.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 7.3 KB Diff Download File
test_flush.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 2.6 KB Diff Download File
test_get_file_mtime.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 3.3 KB Diff Download File
test_get_parent_ids.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 2.5 KB Diff Download File
test_inv.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 6.2 KB Diff Download File
test_is_control_filename.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 1.7 KB Diff Download File
test_is_ignored.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 8.4 KB Diff Download File
test_locking.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 11.5 KB Diff Download File
test_merge_from_branch.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 4.8 KB Diff Download File
test_mkdir.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 1.4 KB Diff Download File
test_move.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 23.5 KB Diff Download File
test_nested_specifics.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 2.7 KB Diff Download File
test_parents.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 33 KB Diff Download File
test_paths2ids.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 7.7 KB Diff Download File
test_pull.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 2.2 KB Diff Download File
test_put_file.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 1.5 KB Diff Download File
test_read_working_inventory.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 1.8 KB Diff Download File
test_readonly.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 4.3 KB Diff Download File
test_remove.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 13 KB Diff Download File
test_rename_one.py 4560.1.1 16 years ago Ian Clatworthy (igc) Allow rename of items already removed from t 14 KB Diff Download File
test_revision_tree.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 3.7 KB Diff Download File
test_set_root_id.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 1.9 KB Diff Download File
test_smart_add.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 10.6 KB Diff Download File
test_uncommit.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 1.2 KB Diff Download File
test_unversion.py 4536.2.1 16 years ago Robert Collins Fix WorkingTree4.unversion when unversioning the p 8.2 KB Diff Download File
test_views.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 7.5 KB Diff Download File
test_walkdirs.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 9.6 KB Diff Download File
test_workingtree.py 4523.1.4 16 years ago Martin Pool Rename remaining *_implementations tests 38.9 KB Diff Download File