On Sun, Aug 17, 2008 at 03:17:35AM -0700, Junio C Hamano wrote: > * bd/diff-strbuf (Wed Aug 13 23:18:22 2008 -0700) 3 commits > + xdiff-interface: hide the whole "xdiff_emit_state" business from > the caller > + Use strbuf for struct xdiff_emit_state's remainder > + Make xdi_diff_outf interface for running xdiff_outf diffs > > Gives measurable performance improvement to textual diff generation. For > improving "blame" performance, it might be more effective to hook directly > to lower level of xdiff machinery so that we do not even have to generate > patch only to discard after reading "@@ -l,k +m,n @@" lines, but that > would be a separate topic. I have done this, resulting in my blame test case going from about 100s on master to about 50s, but I need to do some additional cleanup before it's ready to be submitted. I also have some more ideas for how to speed it up some more. (Basically, with the textual diff generation removed, most of the time now is spent in xdiff hashing lines. Since blame in copy-detection mode tends to diff against the same file over and over again, this is wasted work. Allowing the xdiff machinery to re-use a diff preparation looks to be a little involved, though...) -bcd -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html