Hi there,

as per public request, this is a list of smaller changes made on the
performance branch. Each revision can be reviewed (hopefully)
without further context and be merged into trunk independently.

* r982335
 Limit the amount of unused memory kept in apr_pools
 to the same amount as everywhere else, e.g. SVN.exe main().
 Justification:
   (1) uniform handling of memory pools
   (2) Without this change, apr pools will fragment indefinitely (?)
       for strings (e.g. fulltexts) and other chunks larger than 80kB.
       This already happens on trunk if memcached usage has been
       enabled.

* r984984
 Reduce the number of revprop lookups during export and
 checkout by caching rev,author,timestamp triples locally in
 the report generation code.
 Justification:
   (1) Reduce I/O overhead, especially for pre-1.7 repos
   (2) Ensures consistent reports even if revprops get changed
       by concurrent accesses

* r985472
 Minimize the number of retry attempts when looking for an
 unused temporary file name.
 Justification:
   Some functions (e.g. svn export) request temp file names without
   any randomized sub-string in it, thus retries may take longer and
   longer. This seems to hurt SVN developers more often than
   ordinary users (process gets killed more frequently) but it also
   makes the client less sensitive to cluttered TEMP folders etc.

* r985477
 Eliminate OS overhead for determining the default permissions for
 temp files.
 Justification:
   Significant reduction in sys / OS overhead in svn export.

* r985482
 Reduce the calling overhead for svn I/O functions by inlining the
 APR result -> svn_error_t conversion wrapper.
 Justification:
   A very simple change that reduces the costs of our deep
   calling hierarchies.

* r985500
 Just another temp file name handling improvement: Use the already
 properly encoded file name information from the APR file instead
 of constructing it.
 Justification:
   Further reduction of the client-side overhead in svn export
   (and possibly others).

* r985606
 A somewhat larger change: Reduce the ra_svn de-marshalling
 overhead mainly by pre-allocating sufficient container capacity
 in various places.
 Justification:
   In LAN environments, the data processing on the client becomes
   a bottleneck for faster servers.

* r986453
 An even larger change: Speed up file translation by further optimizing
 the search for "interesting chars" and replacing EOLs only if they
 have actually changed (allowing for larger chunks of data per write
 output operation).
 Justification:
   Apart from the physical I/O and the MD5 translation, this is the
   most CPU-demanding part of an svn export. This patch more than
   doubles its performance. It should also speed up svn checkout by
   the same amount (not factor) of time.

* r987888
 Ignore files generated by MS VisualStudio 2010.
 Justification:
   Dev usability improvement. No functional changes.

Reply via email to