Re: Use a *real* built-in diff generator
- From
- Marco Costalba <mcostalba@gmail.com>
- Date
- Mar 25, 2006, 09:35 UTC
- Message-ID
- <e5bfff550603250135h42b0da62x84973483798d969c@mail.gmail.com>
- In-Reply-To
- <Pine.LNX.4.64.0603241938510.15714@g5.osdl.org>
On 3/25/06, Linus Torvalds <torvalds@osdl.org> wrote:
Show 22 quoted lines
> > This uses a simplified libxdiff setup to generate unified diffs _without_ > doing fork/execve of GNU "diff". > > This has several huge advantages, for example: > > Before: > > [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null > > real 0m24.818s > user 0m13.332s > sys 0m8.664s > > After: > > [torvalds@g5 linux]$ time git diff v2.6.16.. > /dev/null > > real 0m4.563s > user 0m2.944s > sys 0m1.580s >
Currently 'getting the diffs' is the second most important time consumer of annotation calculation (just after getting the file history). On big and heavily modified files, as drivers/net/tg3.c in Linux tree, this can be very slow (around 10s on my box).
The profiling has been done on qgit, but I think it is of general interest because qgit uses git-rev-list and git-diff-tree -p to get file's history and diffs respectively.
So this patch is more then welcomed! Thanks!
Marco