[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.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.