On 12/18/05, Erik Huelsmann <email@example.com> wrote:
> I wrote the patch below as an exercise to do further libsvn_wc
> optimizations. Much of the machinery included can / will be reused in
> later optimization proposals.
> I did it now, because I think this would nicely fit into the
> 'libsvn_wc optimizing' 1.4 release.
> The patch is quite big and therefore, I'm posting before committing.
> It passes all tests on my system, but it changes one of the most used
> code paths in svn, so this is just to be on the safe side.
> I'd like to hear your comments!
I did some timings last night, backed by some help on irc about
testing performance in libsvn_wc.
As it turns out, the change doesn't do much for the performance of the
testing framework. Most probably because the sleep_for_timestamps()
Performance of a patched svn binary was very steady while committing
over ra_local to an fsfs repository. Both the working copy and
repository resided on /tmp. Much less predictable was the performance
of an unpatched svn binary, depending on the amount of disc activity
that was going on in other processes.
Because of the amount of memory on my machine (1Gb - with few
processes active) the patch did not do much for files of small sizes.
This was the performance:
svn binary patched
- Commit addition of a large file (1.2Gb) ~ 13 mins ~ 13 mins
- Commit update to large file 7m5s
To force a 'commit update to large file', I extended the 1.2Gb file with " \n".
I think the second case does show a perf increase, because even on my
system the two files don't fit along side in memory.
So, although my machine only shows performance increase with very
large files, this may be more of a performance increase in systems
where memory is more scarce.
So, basically, I'll be committing this patch (in parts).
Received on Sun Dec 25 02:40:24 2005