You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@subversion.apache.org by "Shannon Kerr (JIRA)" <ji...@apache.org> on 2017/09/08 20:17:00 UTC
[jira] [Commented] (SVN-4450) Windows checkouts much slower then
Unix
[ https://issues.apache.org/jira/browse/SVN-4450?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16159216#comment-16159216 ]
Shannon Kerr commented on SVN-4450:
-----------------------------------
This is very painful for Windows building via Jenkins. Windows builds are always our slowest due in part to this issue.
> Windows checkouts much slower then Unix
> ---------------------------------------
>
> Key: SVN-4450
> URL: https://issues.apache.org/jira/browse/SVN-4450
> Project: Subversion
> Issue Type: Improvement
> Components: libsvn_wc
> Affects Versions: all
> Environment: Windows 7
> Reporter: Stefan Fuhrmann
> Fix For: ---
>
>
> {noformat:nopanel=true}
> 'svn checkout' more then 10x slower under Windows than under Unix.
> The root cause (see below) seems to be that we copy and rename
> files even during an initial checkout. Those operations are much
> more expensive than simply creating a file.
> Future SVN releases should directly write to the final file location
> and use the wc.db to mark those files as "not final, yet" to ensure
> interruptibility etc. Larger SQL operation granularity (e.g. batch
> inserts) should also help to reduce the problem.
> Here's how to reproduce:
> 1. download the benchmark-binaries.zip file from
> https://ctf.open.collab.net/sf/go/rel2819 .
> 2. create a repo and load it via the .dump file in the .zip file.
> 3. check out the repo.
> Findings:
> Checkout with 1.8.3 using svn:// over 1GbE takes ~3:20 on Win7
> vs. ~0:13 on Linux. Most time on Windows is spent in "System",
> under Linux 1/3 is sys time.
> Initial analysis:
> (a) Disabling Virus Scanner brought it down to 2:40.
> Disabling TSvnCache and Windows Search had
> almost no effect (~5s).
> (b) Profiling shows that we run a gazillion INSERT
> transactions in the wc.db. Running with
> --config-option config:working-copy:exclusive-locking-clients=svn
> brought times down to 1:20 and 0:10 respectively.
> (c) On Windows, those 80s are dominated by
> 37% apr_file_rename / MoveFileExW
> 12% apr_file_open / CreateFileW
> 7% apr_file_close / CloseHandle
> SqLite is ~15% (svn_sqlite__step).
> Those apr_file_* functions are called approx. once
> (rename) or twice (open/close) per item in the working
> copy which is the lower limit.
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)