This is based on issue #1492. That issue had so much (now-obsolete) history that it was getting cumbersome. The still-relevant parts are below, paraphrased from Philip Martin's comments of late November 2004 in issue #1492. Create three repositories: stress.pl -c -n0 -F200 -D1 -N1 mv repostress repo-200 stress.pl -c -n0 -F400 -D1 -N1 mv repostress repo-400 stress.pl -c -n0 -F800 -D1 -N1 mv repostress repo-800 Then time how long it takes to run ls on the trunk: time svn ls http://localhost/repo-200/trunk > /dev/null time svn ls http://localhost/repo-400/trunk > /dev/null time svn ls http://localhost/repo-800/trunk > /dev/null With the BDB backend: 200 400 800 ra_local 0.6 1.4 4.5 ra_svn 0.6 1.5 4.6 ra_dav 2.4 5.6 16.3 and the FS backend: 200 400 800 ra_local 0.3 0.4 0.8 ra_svn 0.3 0.5 0.9 ra_dav 4.4 14.3 49.1 ra_local and ra_svn give very similar times, but ra_dav is much slower. (Perhaps we just have to accept that ra_dav is slower since it is not a dedicated Subversion protocol?) Notice how with FSFS, ra_local and ra_svn get faster, but ra_dav gets slower. That's very odd. All times are wall-clock time, measured on a dual CPU machine, with an optimized svn build.