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

Efficient propget/proplist of one directories entries?

From: Barry Scott <barry_at_barrys-emacs.org>
Date: 2006-02-17 16:10:08 CET

It would help speed up my WorkBench GUI if there was an efficient way
to do a proplist
of all the entries in a directory. This was discussed in the past and
I wonder if solving this
problem is likely and it so when?

I use svn_client_status to get all the status info for one directory
in an efficient way but
looping over each file and doing a svn_client_proplist is very slow
compared to the
speed of status.

Here is the output of a pysvn test program:

    status() elapsed time: 0.071s for 166 entries 0.000426s/entry
propget() elapsed time: 2.988s for 166 entries 0.018000s/entry

The 2.9s of the 166 propget calls dwarfs the status call.

The test code is below

Barry

import sys
import pysvn
import time

c = pysvn.Client()

time_status_start = time.time()
all_status = c.status( sys.argv[1], recurse=False, ignore=True )
time_status_end = time.time()

time_propget_start = time.time()
all_proplists = []
for status in all_status:
     if status.text_status != pysvn.wc_status_kind.unversioned:
         all_proplists.append( c.proplist( status.path ) )
time_propget_end = time.time()

print (' status() elapsed time: %.3fs for %d entries %.6fs/entry' %
         (time_status_end-time_status_start
         ,len(all_status)
         ,(time_status_end-time_status_start) /len(all_status)))
print ('propget() elapsed time: %.3fs for %d entries %.6fs/entry' %
         (time_propget_end-time_propget_start
         ,len(all_proplists)
         ,(time_propget_end-time_propget_start) / len(all_proplists)))

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Fri Feb 17 16:18:13 2006

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.