[MERGE] faster log - hooray!

Ian Clatworthy ian.clatworthy at internode.on.net
Wed Jan 28 12:56:15 GMT 2009

bzr's log performance has long been a sore point, particularly
on large projects. The attached patch changes the internal
architecture of log so that it is:

* better at displaying incremental results sooner
* faster at showing a single revision
* faster at filtering by a revision range.

Benchmark results are attached for the emacs-merges trunk.
See my earlier emails on this topic for an explanation of the
various benchmarks run. I'll run some more benchmarks tonight
on a MySQL branch and an OpenOffice.org branch to confirm the
benchmark results are more broadly applicable than just for Emacs.

Note that this patch is dependent on the proposed patch to add
stop_rule to Branch.iter_merge_sorted_revisions(). John, Martin A.
and I are continuing to discuss that separately and hopefully
we'll be agreed on an outcome for that soon.

BTW, Vincent and I are continuing to discuss further log refactoring,
particularly the division of responsibility between LogFormatters
and whatever prepares the data LogFormatter.log_revision()
receives. That's interesting and undoubtedly important but I
want it to be explicitly out of scope for this patch. I certainly
feel there's great value in landing this and not making it
dependent on the outcome of that discussion. As well as the obvious
performance improvements, the current refactoring will help (I
believe) with implementing some missing features like filtering
against a directory.

Finally, log -v performance remains an issue. I plan/expect to
resolve that as part of the split-inventory format work. (I can't
see any obvious way to speed up the current implementation until
we can generate deltas faster.)

Ian C.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: faster-log.patch
Type: text/x-diff
Size: 58457 bytes
Desc: not available
Url : https://lists.ubuntu.com/archives/bazaar/attachments/20090128/1f4b3ff2/attachment-0001.bin 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: faster-log-on-emacs-merges.txt
Url: https://lists.ubuntu.com/archives/bazaar/attachments/20090128/1f4b3ff2/attachment-0001.txt 

More information about the bazaar mailing list