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