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

Re: 1.1rc1 performance regression in 'svn status'

From: Branko ─îibej <brane_at_xbc.nu>
Date: 2004-08-05 08:51:11 CEST

Peter N. Lundblad wrote:

>On Wed, 4 Aug 2004, Matt Doran wrote:
>>I have a large repository that contains about 5000 files, with some
>>directories containing hundreds of files. When I do an 'svn status' I get
>>the following results:
>>SVN 1.0.6: ~ 4 secs
>>SVN 1.1rc1: ~ 38 secs !!
>>I used the Filemon utility from sysinternals to try to determine what it
>>happening. It looks like 1.1 excessively hits 'iconv' files. (e.g.
>>windows-1252.so, utf-8.so, etc)
>>In 1.0 it appears to hit these files early in the process, but then doesn't
>When we use iconv, we cache the iconv handle in the current pool. I guess
>we are doing some charset encoding in a loop with a subpool that gets
>cleared or something.
>Couldn't we used thread-specific data for this instead?
No, because we have no way to initilize it, since we have neither
library initializers nor a context parameter for each function.

> Another idea would
>be to cache the handle in the root of the pool hierarchy. I don't know if
>this might cross thread boundaries, so that might not be a good idea.
Yes, it might, and we threw it out for exactly that reason -- we'd done
so in the past.

>FWIW, I don't get this problem on Linux, but glibc's iconv might be better
>at caching.
The problem with apr-iconv is that it loads actual converters as shared
libraries, and loads them every time you create a conversion context.

>Is there any proboem with TSD in APR? Don't know ow it works on Windows.
The only problem is that you can't initialize it sanely if you're not
controlling thread creation. See apr_thread_proc.h.

-- Brane

To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Thu Aug 5 08:53:26 2004

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