On Tue, Apr 22, 2014 at 2:55 PM, Florian Ludwig <[email protected]> wrote: > >> >> 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.
Okay, I handwaved a bit too much. Maybe we should just take the Linux+NTFS numbers with a grain of salt then, and mainly focus on Linux+ext4 vs. Windows+NTFS. The fact remains that there are two variables changing. But maybe it's not a big issue for this comparison, and it's almost unavoidable. > >> 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). Interesting (especially that it changes nothing for Linux+ext4 --- that might suggest that this combination has far more agressive disk caching so it doesn't have to sync often with the underlying harddisk even with exclusive-locking=false ... or something like that). OK, so the factor (Windows NTFS vs. Linux ext4) then becomes around 5.5. > It is still slow and further improvements > would be welcome. I agree. Unfortunately I don't have the expertise nor the time to dive into this myself. I hope one of the other developers can take a further look. -- Johan >> 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)
