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)