Git development
 help / color / mirror / Atom feed
From: Eric Wong <normalperson@yhbt.net>
To: Hin-Tak Leung <htl10@users.sourceforge.net>
Cc: stoklund@2pi.dk, fabian.schmied@gmail.com, git@vger.kernel.org,
	sam@vilain.net, stevenrwalter@gmail.com, waste.manager@gmx.de,
	amyrick@apple.com
Subject: Re: Anomaly with the new code - Re: git-svn performance
Date: Fri, 24 Oct 2014 23:34:11 +0000	[thread overview]
Message-ID: <20141024233411.GA18655@dcvr.yhbt.net> (raw)
In-Reply-To: <1414134386.28852.YahooMailBasic@web172306.mail.ir2.yahoo.com>

Hin-Tak Leung <htl10@users.sourceforge.net> wrote:
> I keep tabs of a particular svn repository over many years
> and run "git svn fetch --all" every few days. So that's the old clone.
> Since this discussion started, I made a new one with git 2.1.0 patched
> with the first two patches below, a couple of weeks ago. And I ran
> 'git svn fetch --all' on both every few days since.
> 
> I have added a few more patches, so the whole list is the 6
> below against 2.1.0. The latest fetch is really strange - the fetch against
> the new clone took almost twice as long and uses almost twice
> as much memory, vs against the old. 17 min, 800 MB vs 10 min 400MB.
> Details below. Maybe this is a performance issue about how the clones
> were made?

Memory usage seems to grow with the amount of revisions fetched,
see below.  And higher memory means slower fork() on Linux systems.

> 0001-git-svn-only-look-at-the-new-parts-of-svn-mergeinfo.patch    
> 0002-git-svn-only-look-at-the-root-path-for-svn-mergeinfo.patch   
> 0003-git-svn-reduce-check_cherry_pick-cache-overhead.patch        
> 0004-git-svn-cache-only-mergeinfo-revisions.patch                 

> 0006-git-svn-clear-global-SVN-pool-between-get_log-invoca.patch   

0006 is insufficient and incompatible with older SVN.
I pushed "git-svn: reload RA every log-window-size"
(commit dfa72fdb96befbd790f623bb2909a347176753c2) instead
which saves much more memory:

http://mid.gmane.org/20141024225352.GB31716@dcvr.yhbt.net

But there still seems to be some slow growth with many revisions
which is not mergeinfo-related.

> 0007-git-svn-remove-mergeinfo-rev-caching.patch 

I think it is also safe to remove the _rev_list memoization since
it uses a lot of memory.  The remaining caches should be tiny
(but useful, I think).

  reply	other threads:[~2014-10-24 23:34 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-22 17:38 git-svn performance Hin-Tak Leung
2014-10-24  7:06 ` Anomaly with the new code - " Hin-Tak Leung
2014-10-24 23:34   ` Eric Wong [this message]
2014-10-25  0:02 ` Eric Wong
  -- strict thread matches above, loose matches on Subject: below --
2014-10-25  5:29 Anomaly with the new code - " Hin-Tak Leung
2014-10-25  5:51 ` Eric Wong
2014-10-27  6:38 ` Eric Wong
2014-10-27 16:56   ` Eric Wong
2014-10-27 23:08 Hin-Tak Leung
2014-10-27 23:26 Hin-Tak Leung
2014-10-28  7:45 ` Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20141024233411.GA18655@dcvr.yhbt.net \
    --to=normalperson@yhbt.net \
    --cc=amyrick@apple.com \
    --cc=fabian.schmied@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=htl10@users.sourceforge.net \
    --cc=sam@vilain.net \
    --cc=stevenrwalter@gmail.com \
    --cc=stoklund@2pi.dk \
    --cc=waste.manager@gmx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox