From: Marco Costalba Date: Sat, 25 Mar 2006 09:35:39 GMT Subject: Re: Use a *real* built-in diff generator Message-ID: In-Reply-To: On 3/25/06, Linus Torvalds wrote: > > 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