git-merge performance

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

git-merge performance

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2016-06-15 22:43:42

My git-pulling script (git-1.4.2) seems to have got quite a bit slower
since the post-2.6.23 patchflood.  I just did a bit of poking and it's
git-merge which is taking most of the time.


Using git-watchdog as an example:

box:/usr/src/git26> cat .git/branches/git-watchdog 
git+ssh://master.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog-mm.git
box:/usr/src/git26> git reset --hard origin
box:/usr/src/git26> git fetch git-watchdog
box:/usr/src/git26> time git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null                  
Automatic merge failed; fix conflicts and then commit the result.
git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null  47.03s user 26.53s system 97% cpu 1:15.67 total


Try git-md-accel:

box:/usr/src/git26> cat .git/branches/git-md-accel 
git://lost.foo-projects.org/~dwillia2/git/iop#md-for-linus
box:/usr/src/git26> time git reset --hard origin
git reset --hard origin  0.51s user 0.11s system 100% cpu 0.615 total
box:/usr/src/git26> time git fetch git-md-accel
git fetch git-md-accel  0.12s user 0.05s system 11% cpu 1.379 total
box:/usr/src/git26> time git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null                  
Automatic merge failed; fix conflicts and then commit the result.
git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null  42.52s user 24.18s system 96% cpu 1:08.93 total


And git-unionfs:

box:/usr/src/git26> cat .git/branches/git-unionfs      
git+ssh://master.kernel.org/pub/scm/linux/kernel/git/ezk/unionfs.git
box:/usr/src/git26> time git reset --hard origin
git reset --hard origin  0.52s user 0.09s system 100% cpu 0.611 total
box:/usr/src/git26> time git fetch git-unionfs      
git fetch git-unionfs  0.16s user 0.03s system 8% cpu 2.285 total
box:/usr/src/git26> time git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null                  
Automatic merge went well; stopped before committing as requested
git merge --no-commit 'test merge' HEAD FETCH_HEAD > /dev/null  42.81s user 24.86s system 96% cpu 1:09.98 total


Everything is in pagecache, and I just did git-repack -a -d;git
prune;git-fsck-objects --full.

Pulling 70-80 trees at a minute and a half each gets a bit dull ;)

Re: git-merge performance

From: Andreas Ericsson <hidden>
Date: 2016-06-15 22:43:42

Andrew Morton wrote:
My git-pulling script (git-1.4.2) seems to have got quite a bit slower
since the post-2.6.23 patchflood.  I just did a bit of poking and it's
git-merge which is taking most of the time.
That's odd. If it had been the remote fetching it would have been
understandable. Is this also happening with more recent gits? I know there
are some significant performance-improvements in 1.5.3.4 (or below).

-- 
Andreas Ericsson                   andreas.ericsson@op5.se
OP5 AB                             www.op5.se
Tel: +46 8-230225                  Fax: +46 8-230231

Re: git-merge performance

From: Andrew Morton <akpm@linux-foundation.org>
Date: 2016-06-15 22:43:42

On Tue, 16 Oct 2007 19:34:10 +0200
Andreas Ericsson [off-list ref] wrote:
Andrew Morton wrote:
quoted
My git-pulling script (git-1.4.2) seems to have got quite a bit slower
since the post-2.6.23 patchflood.  I just did a bit of poking and it's
git-merge which is taking most of the time.
That's odd. If it had been the remote fetching it would have been
understandable. Is this also happening with more recent gits? I know there
are some significant performance-improvements in 1.5.3.4 (or below).
1.5.0 is no faster, but 1.5.3 appears to be seven times quicker.  Neato.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help