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

Re: [TSVN] Technical questions on status caching

From: Laurent CHASTEL <lchastel_at_hotmail.com>
Date: 2004-12-21 23:38:44 CET

>
>Some things I noticed in your cache implementation:
>
>- do you call svn_utf_initialize() after you create your apps main pool
>(m_pool)? If not, then you will experience a dramatic slowdown because then
>Subversion loads and unloads three *.so modules for every file it finds up
>to three times. For 3000 files that can mean (3000*3*3) 18'000 times
>loading a dll and unloading it again. You can imagine how that affects
>performance...

That's why I have the loading/unloading messages when debugging ;)
I need to make a few check because there is a big
   #if defined( UNICODE )
   #error UNICODE Not supported
   #endif
In the SCC API ;(

>- The method getSVNStatusForFiles() isn't very efficient. Yes, you open the
>working copy with svn_wc_adm_open2() once and then you read the status of
>files. But that's what's not efficient. svn_wc_status() reads the entries
>file every time you call it. The only thing you gain by calling
>svn_wc_adm_open2 first is that the working copy is locked once and stays
>locked. But the file accesses (which is the extensive part) isn't reduced
>much. You should call svn_client_status() on the parent folder of the
>filelist - it will be faster even if you have to fetch the status of the
>working copy root recursively and filter out the files you don't want!

It was the solution I first used, but svn_client_status perform too many
operations on disk one access to entries and one or several accesses to get
status of each file in the directory.
getSVNStatusForFiles is used when the user selects several objects to
perform a specific action (update, commit, status, ...). In with the IDE and
SCC , the user never selects more than 20 files in one time. By using
svn_wc_status, there are 20 accesses to entries but only 20 status are
performed. Using svn_client_status, the entries fiel is only accessed one,
the status of all files in the folder is retrieved, which is not efficient
in my case because I have 3000 files in my folder.
It's right that svn_wc_status is not efficent if you have few files in the
directory.

>Stefan

Laurent

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tortoisesvn.tigris.org
For additional commands, e-mail: dev-help@tortoisesvn.tigris.org
Received on Tue Dec 21 23:40:11 2004

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

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