On Fri, Nov 26, 2010 at 11:58 PM, Mark Phippard <markphip_at_gmail.com> wrote:
> On Fri, Nov 26, 2010 at 8:02 AM, Stefan Sperling <stsp_at_elego.de> wrote:
> > On Fri, Nov 26, 2010 at 02:05:55PM +1000, Daniel Becroft wrote:
> >> Hi,
> >> I'm currently trialling the nightly builds that Stefan is providing for
> >> TSVN, which include the new WCNG implementation. So far, it all looks
> >> It takes a few minutes extra to checkout a working copy, but the
> >> performance difference (to me) is not noticeable. Good stuff!
> >> One thing I did notice, though, is the performance of the 'svn upgrade'
> >> functionality. It seems to take, on average, 3x longer to upgrade an
> >> existing working copy than to just delete and checkout again.
> >> Checkout (1.6.x): 9 minutes
> >> Checkout (1.7.x): 14 minutes
> >> Upgrade (1.7.x): 43 minutes
> >> Is this kind of performance hit during an upgrade expected? Is the
> >> recommended upgrade option expected to be to use 'svn upgrade' or do get
> >> fresh checkout?
> >> If you need stats regarding the working copy, I can provide them.
> > Please keep benchmarking and reporting your results.
> > The current state of wc-ng development is, AFAIK, that we're still
> > working out some final steps in the implementation. We're not yet at
> > the point where we're heavily trying to optimize the new code.
> > But any report about slowness will help once we've reached that point.
> > Keep them coming.
> It seems like Daniel is more asking if this might be indicative of a
> bug. Does it ever make sense that svn upgrade would take that long?
> Without any need to fetch pristines from the repository as checkout
> needs to do, it seems hard to believe that it should take that long.
> I can imagine scenarios where we have to calc new checksums or open
> and re-read entry data over and over again but 43 minutes?
Daniel, is your working copy on a local hard drive?
Yes, the working copy is on a local drive. It also has:
- 398 .svn folders (some of these are 7 or 8 level deep)
- 21,206 *.svn-base files
I'm ran another 'svn upgrade' process through Process Monitor (from
sysinternals), and have found something interesting.
It seems that for every file that gets added (e.g. trunk/A/B/C/alpha.txt),
it reads (or scans) the entire contents of the .svn/tmp/wcng/.svn/wc.db file
three times (each one on 1024 byte increments). At the moment, this file is
approx. 5Mb, and that's 2s in total between accesses to the .svn-base files.
I can't see any mention of entries, or pristine in there, so I'm not sure
what it's actually doing. THe last successful upgrade I ran (the 43m one)
gave an 11Mb file, so I'm not even half-way through. At this point procmon
is reporting 14m events, so I had to kill it.
When I get a chance, I'll run it again on a smaller WC.
Received on 2010-11-26 22:56:03 CET