[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

[svnbench] Revision: 1091976 compiled Apr 14 2011, 00:21:28

From: Neels Hofmeyr <neels_at_elego.de>
Date: Thu, 14 Apr 2011 15:33:11 +0200

Hi all,

yesterday's and today's benchmarks look particularly good (listed
below). I haven't paid attention to commits, but it seems some pretty
good perf commits have happened recently (except for 'svn delete').

'svn delete' is still 10 times slower on trunk for 100x1 (in a deep
working copy of 100 nested dirs and a file each), and 20 times slower
for 5x5 (tree of 5 levels and 5 subtrees per node).
In all the other cases and all the other svn commands, trunk seems
either faster, *much* faster, or roughly the same speed.

There are a few ratings showing a slower trunk, but these account mostly
for delays in hundredth seconds range. Compared to the timings I saw 6
months ago, this looks really really really good!! :D

I just verified these results on the hardware I originally tested on
(the benchmarks you are seeing these days are run on our ASF VM). On my
"old" laptop, the ratings show less speed gain for trunk than on the VM
(mostly no speed gain, really), but results confirm the same tendency:
the speed factors, except for 'svn delete', are mostly close to 1 -- and
used to be a lot higher.

Again, an exception: on my old hardware, 'svn merge' still slows down on
trunk. But Remarkably, 'merge' used to be around factors 2.6 and higher
(= trunk much slower), which has gone down to only around 1.4.

On all hardware, 'svn delete', in situations with multiple dir levels,
has gone Evil since the benchmarks a few months ago.

So, to summarize, runtime wise we are on par with 1.6.x with exceptions:

- Someone broke/had to break 'svn delete'-with-multiple-dir-levels perf.
Trunk can take 10 and 20 times longer here, which seems a bit off.

- On some hardware, 'svn merge' is slower on trunk, but...
...it's not as bad as a few months ago and
...on our VM, 'merge' is actually not slower but faster on trunk and
...remember that this is measuring mostly libsvn_wc overhead because
benchmarks use ra_local only, and my guess is that merge over http slows
down such that this should become hardly noticeable.

- I also see that trunk seems to be able to better put high-performance
hardware to use than 1.6 did, since on our VM I see noticeable perf
improvements, which doesn't show on "normal" hardware.

- Almost forgot to mention: 'svn status' is slower on trunk (5x5 case).
Though this accounts for only + half-a-second on average, IMHO it would
be nice for 'svn status' to be as fast as possible.

All in all, once we clarified why 'svn delete' is as slow (and possibly
choose not to worry about it), I'd suggest that trunk's performance is
release worthy when compared to 1.6.x.

The best numbers are the "TOTAL RUN" ones, where the whole test run is
summed up; with the numbers shown here, we can statistically prove that,
hold your breath,

           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
           --- Trunk Is Faster Than 1.6.x (*) ---
           ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                (*) <fineprintfineprint>

Yay!

Hmm, stsp, wouldn't that also make a good T-shirt slogan? ;)

~Neels

Results for dir levels: 5 spread: 5
5x5 with 1.6: ~444 seconds
       trunk: ~418 seconds

COMPARE 5x5_1.6 to 5x5_trunk
  1.23|+0.45 means factor=1.23, difference in seconds = 0.45
  factor < 1 or difference < 0 means '5x5_trunk' is faster than
'5x5_1.6'
      min max avg operation
   0.88|-47.746 0.95|-25.249 0.94|-25.663 TOTAL RUN
   1.29| +0.002 0.48| -4.468 0.86| -0.006 add
   1.73| +0.010 0.54| -6.573 0.55| -2.626 checkout
   0.64| -2.009 0.51|-28.064 0.67| -6.072 commit
   0.65| -0.014 0.09| -0.621 0.22| -0.157 copy
  40.04|+92.021 10.96|+116.441 19.45|+102.098 delete
   1.09| +0.678 0.46|-17.970 0.74| -3.778 merge
   1.38| +0.003 0.60| -0.090 1.53| +0.006 mkdir
   1.23| +0.002 0.06| -3.518 0.84| -0.003 prop mod
   1.18| +0.002 0.03| -2.268 0.32| -0.032 propdel
   1.21| +0.002 0.07| -1.481 1.38| +0.004 proplist
   1.24| +0.002 0.08| -5.684 0.86| -0.003 propset
   1.18| +0.002 1.89| +0.031 1.50| +0.006 resolve
   3.02| +0.615 1.16| +0.279 2.24| +0.836 resolved
   1.39| +0.070 0.74| -1.075 1.78| +0.420 status
   0.52| -4.281 0.35|-14.527 0.40| -8.079 switch
   1.61| +0.092 0.24|-27.006 0.40| -3.899 update

Results for dir levels: 100 spread: 1
100x1 with 1.6: ~78 seconds
         trunk: ~28 seconds (!)

COMPARE 100x1_1.6 to 100x1_trunk
  1.23|+0.45 means factor=1.23, difference in seconds = 0.45
  factor < 1 or difference < 0 means '100x1_trunk' is faster than
'100x1_1.6'
      min max avg operation
   0.35|-47.448 0.36|-53.207 0.36|-49.989 TOTAL RUN
   1.26| +0.002 0.42| -0.435 0.76| -0.008 add
   1.73| +0.009 0.06| -7.794 0.07| -3.062 checkout
   0.44| -0.408 0.85| -0.400 0.81| -0.224 commit
   0.87| -0.003 0.18| -0.134 0.31| -0.051 copy
   9.86| +2.260 9.09| +3.024 8.88| +2.428 delete
   0.96| -0.030 2.23| +1.534 1.12| +0.114 merge
   1.35| +0.003 1.66| +0.027 1.38| +0.005 mkdir
   1.25| +0.002 0.33| -0.093 1.32| +0.004 prop mod
   1.22| +0.002 0.12| -0.254 0.59| -0.011 propdel
   1.21| +0.002 0.96| -0.002 1.39| +0.004 proplist
   1.25| +0.002 0.23| -0.179 1.19| +0.002 propset
   1.16| +0.001 0.78| -0.003 1.10| +0.001 resolve
   1.27| +0.022 1.12| +0.020 1.17| +0.021 resolved
   0.96| -0.003 3.14| +0.453 1.43| +0.053 status
   0.10| -4.235 0.09| -5.890 0.09| -5.098 switch
   0.86| -0.010 0.09| -7.623 0.11| -2.753 update

Results for dir levels: 1 spread: 100
1x100 with 1.6: ~8 seconds
         trunk: ~6.5 seconds

COMPARE 1x100_1.6 to 1x100_trunk
  1.23|+0.45 means factor=1.23, difference in seconds = 0.45
  factor < 1 or difference < 0 means '1x100_trunk' is faster than
'1x100_1.6'
      min max avg operation
   1.14| +0.670 0.48| -8.540 0.80| -1.579 TOTAL RUN
   0.80| -0.009 0.42| -0.055 0.68| -0.018 add
   1.67| +0.009 0.49| -0.165 1.08| +0.006 checkout
   1.14| +0.010 0.45| -1.036 0.96| -0.012 commit
   1.00| +0.000 0.83| -0.004 0.97| -0.001 copy
   1.05| +0.004 0.03| -4.393 0.09| -1.008 delete
   0.82| -0.032 0.28| -0.627 0.66| -0.098 merge
   1.12| +0.001 0.35| -0.144 0.83| -0.002 prop mod
   1.09| +0.001 0.17| -0.176 0.66| -0.006 propdel
   1.14| +0.001 1.82| +0.020 1.20| +0.002 proplist
   1.11| +0.001 0.13| -0.733 0.85| -0.002 propset
   1.14| +0.001 5.39| +0.044 1.47| +0.004 resolve
   2.31| +0.014 2.92| +0.034 2.22| +0.017 resolved
   1.18| +0.002 4.41| +0.070 1.39| +0.006 status
   0.88| -0.011 0.46| -0.105 0.76| -0.028 switch
   1.35| +0.004 0.49| -0.182 0.86| -0.009 update
Received on 2011-04-14 15:33:58 CEST

This is an archived mail posted to the Subversion Dev mailing list.