Thread (16 messages) flat view 16 messages, 8 authors, 2016-06-15

Re: Use a *real* built-in diff generator

From: Marco Costalba <hidden>
Date: 2016-06-15 22:42:22

On 3/25/06, Linus Torvalds [off-list ref] 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help