> From your numbers I deduce that the performance degradation can be > attributed partly to NTFS vs. ext4, and partly to Windows7 vs. Linux: > * NTFS vs. ext4: roughly a factor 3 slower. > * Windows 7 vs. Linux: roughly a factor 2.5 slower. >
You assume that the file operation performance of Windows on NTFS and Linux on NTFS is the same - which I am sure it is not. First of all the NTFS driver on Linux is FUSE-based so it runs in userspace and therefor slower than kernel based drivers such as ext4. Also ext4 is one of the most used file system on Linux so I expect its code to be much more optimized. Another interesting data point might be: what does the client-side > option exclusive-locking [1] (available as of 1.8) do to the test > results? Can you give that a try? Just adding "--config-option > config:working-copy:exclusive-locking=true" to your command line > invocations should do the trick. > I tried that, it bring down the checkout times (better result of two runs): * Linux ext4: 1m 15s * Linux NTFS: 3m 2s * Windows NTW: 6m 52s So there is no noteworthy change on Linux but Windows performance improved by 25% (9m 19s down to 6m 52s). It is still slow and further improvements would be welcome. Also: it would be good to know the exact versions of sqlite and other > libraries that your svn (client) versions were built with. As of 1.8, > this information is provided by 'svn --version --verbose'. > Linux: svn, version 1.8.8 (r1568071) compiled Feb 28 2014, 19:40:43 on x86_64-redhat-linux-gnu Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - using serf 1.3.4 - handles 'http' scheme - handles 'https' scheme System information: * running on x86_64-unknown-linux-gnu - Fedora release 20 (Heisenbug) (Heisenbug) [Linux 3.13.8-200.fc20.x86_64] * linked dependencies: - APR 1.5.0 (compiled with 1.5.0) - APR-Util 1.5.3 (compiled with 1.5.3) - SQLite 3.8.4.2 (compiled with 3.8.3) Windows: svn, version 1.8.8 (r1568071) compiled Apr 12 2014, 14:17:25 on x86-microsoft-windows Copyright (C) 2013 The Apache Software Foundation. This software consists of contributions made by many people; see the NOTICE file for more information. Subversion is open source software, see http://subversion.apache.org/ The following repository access (RA) modules are available: * ra_svn : Module for accessing a repository using the svn network protocol. - with Cyrus SASL authentication - handles 'svn' scheme * ra_local : Module for accessing a repository on local disk. - handles 'file' scheme * ra_serf : Module for accessing a repository via WebDAV protocol using serf. - using serf 1.3.4 - handles 'http' scheme - handles 'https' scheme System information: * running on x86_64-microsoft-windows6.1.7601 - Windows 7 Ultimate N, Service Pack 1, build 7601 [6.1 Client Multiprocessor Free] * linked dependencies: - APR 1.5.0 (compiled with 1.5.0) - APR-Util 1.5.3 (compiled with 1.5.3) - SQLite 3.8.3.1 (compiled with 3.8.3.1) * loaded shared libraries: - C:\Program Files\TortoiseSVN\bin\svn.exe (1.8.8.60743) - C:\Windows\SYSTEM32\ntdll.dll (6.1.7601.18247) - C:\Windows\system32\kernel32.dll (6.1.7601.18409) - C:\Windows\system32\KERNELBASE.dll (6.1.7601.18229) - C:\Program Files\TortoiseSVN\bin\libsvn_tsvn.dll (1.8.8.60743) - C:\Program Files\TortoiseSVN\bin\libapr_tsvn.dll (1.5) - C:\Windows\system32\WS2_32.dll (6.1.7601.17514) - C:\Windows\system32\msvcrt.dll (7.0.7601.17744) - C:\Windows\system32\RPCRT4.dll (6.1.7601.18205) - C:\Windows\system32\NSI.dll (6.1.7600.16385) - C:\Windows\system32\MSWSOCK.dll (6.1.7601.18254) - C:\Windows\system32\user32.dll (6.1.7601.17514) - C:\Windows\system32\GDI32.dll (6.1.7601.18275) - C:\Windows\system32\LPK.dll (6.1.7601.18177) - C:\Windows\system32\USP10.dll (1.626.7601.18009) - C:\Windows\system32\ADVAPI32.dll (6.1.7601.18247) - C:\Windows\SYSTEM32\sechost.dll (6.1.7600.16385) - C:\Windows\system32\SHELL32.dll (6.1.7601.18222) - C:\Windows\system32\SHLWAPI.dll (6.1.7601.17514) - C:\Windows\system32\MSVCR110.dll (11.0.51106.1) - C:\Program Files\TortoiseSVN\bin\libaprutil_tsvn.dll (1.5.3) - C:\Windows\system32\WLDAP32.dll (6.1.7601.17514) - C:\Program Files\TortoiseSVN\bin\intl3_tsvn.dll (0.14.6) - C:\Program Files\TortoiseSVN\bin\libsasl.dll (2.1.24) - C:\Windows\system32\ole32.dll (6.1.7601.17514) - C:\Windows\system32\Secur32.dll (6.1.7601.18270) - C:\Windows\system32\SSPICLI.DLL (6.1.7601.18270) - C:\Windows\system32\CRYPT32.dll (6.1.7601.18277) - C:\Windows\system32\MSASN1.dll (6.1.7601.17514) - C:\Windows\system32\VERSION.dll (6.1.7600.16385) - C:\Windows\system32\IMM32.DLL (6.1.7600.16385) - C:\Windows\system32\MSCTF.dll (6.1.7600.16385) - C:\Windows\system32\profapi.dll (6.1.7600.16385) - C:\Program Files\TortoiseSVN\bin\saslANONYMOUS.dll (2.1.24) - C:\Program Files\TortoiseSVN\bin\saslCRAMMD5.dll (2.1.24) - C:\Program Files\TortoiseSVN\bin\saslDIGESTMD5.dll (2.1.24) - C:\Program Files\TortoiseSVN\bin\saslGSSAPI.dll (2.1.24) - C:\Program Files\TortoiseSVN\bin\saslLOGIN.dll (2.1.24) - C:\Program Files\TortoiseSVN\bin\saslNTLM.dll (2.1.24) - C:\Program Files\TortoiseSVN\bin\saslPLAIN.dll (2.1.24) - C:\Windows\system32\Msimg32.DLL (6.1.7600.16385) - C:\Windows\system32\api-ms-win-downlevel-advapi32-l1-1-0.dll (6.2.9200.16492) - C:\Windows\system32\psapi.dll (6.1.7600.16385)