FindFirstFile delay on merging resolved via profiling (r33447)
From: Bert Huijben <bert_at_vmoo.com>
Date: Sun, 5 Oct 2008 02:23:16 +0200
> -----Original Message-----
This two line patch on svn_dirent_get_absolute is the result of several hours of profiling and it makes the merge test we profiled 30% faster. (It probably increases the speed of many other subversion commands as well).
This very Windows specific slowdown was added in r13 when the call to _fullpath() from the Microsoft C++ library was replaced by the more generic apr_filepath_merge.
On all platforms except windows apr_filepath_merge can only make the path absolute, but on Windows it also allows the flag APR_FILEPATH_TRUENAME that actually verifies if the path exists by checking the exact casing of the path and all its ancestors.
!! It actually performs disk IO !!
On a typical test merge:
This svn_dirent_get_absolute involves several thousands of calls to FindFirstFile, while only 22 files receive updates.
Removing this flag shaves 7 seconds from the merge time on my quad core pc.
Lgo found some other performance issues around canonicalize (taking 20% of merge on Linux) and we are still looking for other issues, so I hope we will see some other performance improvements in the next few days.
Bert
---------------------------------------------------------------------
|
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.