Comment 16 for bug 374730

Revision history for this message
John A Meinel (jameinel) wrote :

There is still more that can be done, a 'phase-1' of 'bzr log DIR' has been improved dramatically in my branch.

"time bzr log -n0 --no-aliases tools"

went from
  real 5m16.959s
down to
  real 0m37.888s

This was done with just changing "get_deltas_for_revisions()" to not call filter() but to just always do the iter_changes code. I believe that actually means the resulting log will be wrong, because I'm not applying the specific file_ids anywhere, but it certainly was an interesting result.

I'm reverting that change (for now), and trying a different tack. Namely changing the CHKInventory.filter() operation to find the subset of files that were interesting, and then only extracting those entries from disk and putting them into an Inventory.

Note that doing it this way means it will scale by num_revisions * num_files_in_directory. While the other method should scale by O(changes-to-the-tree).
Ideally we'd combine the two and end up scaling as O(changes-to-those-files). The data on disk is all there to do so, we just don't have the apis built to support it yet.