Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com From: "Mark Allan Young" To: Subject: cygwin/cvs performance observations... Date: Wed, 17 Jul 2002 17:24:07 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 (Normal) X-MSMail-Priority: Normal Importance: Normal X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 I've posted about this before, but thought I'd send out this more recent information. Any suggestions on tactics appreciated... We used cygwin in a mixed linux/win2k environment. we'd noticed what looked like ever increasing times to populate and update a source tree using cvs. the cvs database is on a 6.2 redhat linux, with a 2.2.17-14smp kernel on a 1.2GHz AMD system. it has around 25000 files. the client is also a 1.2GHz AMD system, running win2k. I was looking at an strace of cvs to see what it was doing, and got curious about the internals of cvs, seeing some of output from strace. after downloading the cvs source distribution, I noticed that I could build it native. Running the native built cvs against the cygwin cvs, I had the following results: cygwin native cvs co 21m58s 5m25s cvs update -d -PA 6m45s (2m21s) 1m44s (1m29s) the time in parenthesis is a back to back update, where (I assume) the files in question get the benefit of a huge disk cache on my system. in practice, doing builds of the tree between updates some portion of the cache and the times end up in the 4 minute range, where the native seems to hover around 2 minutes. We're strongly considering switching the team over to the native cvs to improve update and checkout times (along with the idea of breaking up the module where it won't complicated the development process. Just thought others might be interested in the datapoints, and/or might have some perspective or tactics I could used to narrow things down... as a side note: There were a number of problems using the native version. It didn't seem to do as well with the "\r" problems. several windows text files had been checked into the repository from linux without having their "\r" removed...the result was a "\r\r\n" sequence in a modified file after checkout on windows. these files seemed to be ok using the cvs linked with cygwin. also, some binary files that were checked in without the -kb flag and worked ok with the cygwin cvs became corrupted by the native cvs when it replaced "\n" with "\r\n" in the files. finally, if you did switch between the two cvs versions, a cvs status would indicate that some files that had not been touched were modified. this ended up being caused by differing date formats in the CVS/Entries files...if a file had a date with a day of the month less than 10, the cygwin cvs would list it as "monthday", where day is 1-9, where the native would list it as as "monthday", where is the digit "0" and day is once again 1-9. comments and/or suggestions for further tests or data gathering appreciated. thanks. ...myoung ==================================================================== rune> cygcheck -s Cygwin Win95/NT Configuration Diagnostics Current System Time: Wed Jul 17 16:34:54 2002 Windows 2000 Professional Ver 5.0 Build 2195 Service Pack 2 Path: C:\Cygwin\bin C:\Cygwin\bin C:\Cygwin\usr\perl\bin C:\Cygwin\usr\local\bin C:\Cygwin\usr\people\myoung\bin C:\Cygwin\usr\local\bin C:\Cygwin\bin C:\Cygwin\bin C:\Cygwin\bin C:\Cygwin\lib C:\Cygwin\Contrib\bin c:\PROGRA~1\MICROS~2\Common\msdev98\BIN c:\PROGRA~1\MICROS~2\VC98\BIN c:\PROGRA~1\MICROS~2\Common\TOOLS\WINNT c:\PROGRA~1\MICROS~2\Common\TOOLS c:\WINNT\system32 c:\WINNT c:\WINNT\System32\Wbem c:\Program Files\Rational\common C:\Cygwin\bin C:\Cygwin\contrib\bin c:\Program Files\Microsoft Xbox SDK\Xbox\Bin C:\Cygwin\usr\people\myoung\emacs\emacs-21.1\bin C:\Cygwin\usr\local\sce\ee\gcc\bin C:\Cygwin\usr\local\sce\iop\gcc\bin C:\Cygwin\usr\local\sce\ee\gcc\ee\bin C:\Cygwin\usr\local\sce\iop\gcc\mipsel-scei-elfl\bin c:\PROGRA~1\PRODGF~1 c:\Program Files\Metrowerks\CodeWarrior\bin\dvpasm c:\DolphinSDK1.0\x86\bin . c:\Program Files\Symantec\pcAnywhere c:\Program Files\Metrowerks\ATtaCK\bin c:\Program Files\Metrowerks\CodeWarrior\PS2_Tools\Command_Line_Tools . . Win32DxRelease.AS C:\Cygwin\usr\people\myoung\trees\newgap\tools\ctools . SysDir: C:\WINNT\System32 WinDir: C:\WINNT CYGWIN32 = `tty' CYGWIN = `tty' HOME = `C:\Cygwin\usr\people\myoung' MAKE_MODE = `unix' PWD = `/usr/people/myoung' USER = `myoung' Use `-r' to scan registry a: fd N/A N/A c: hd NTFS 43974Mb 90% CP CS UN PA FC d: cd N/A N/A e: cd N/A N/A f: cd N/A N/A m: hd NTFS 43974Mb 90% CP CS UN PA FC n: net NTFS 38466Mb 99% CP CS PA data . /cygdrive user textmode,cygdrive C:\Cygwin / system textmode C:\Cygwin/bin /usr/bin system textmode C:\Cygwin/lib /usr/lib system textmode . /cygdrive user textmode,cygdrive Found: C:\Cygwin\bin\bash.exe Found: C:\Cygwin\bin\cat.exe Found: C:\Cygwin\bin\cpp.exe Found: c:\Program Files\Metrowerks\CodeWarrior\bin\dvpasm\cpp.exe Found: C:\Cygwin\bin\find.exe Found: C:\Cygwin\bin\gcc.exe Found: C:\Cygwin\bin\gdb.exe Found: C:\Cygwin\bin\ld.exe Found: C:\Cygwin\usr\local\sce\ee\gcc\ee\bin\ld.exe Found: C:\Cygwin\usr\local\sce\iop\gcc\mipsel-scei-elfl\bin\ld.exe Found: C:\Cygwin\bin\ls.exe Found: C:\Cygwin\bin\make.exe Found: C:\Cygwin\usr\local\sce\ee\gcc\bin\make.exe Found: C:\Cygwin\bin\sh.exe 58k 2002/05/07 C:\Cygwin\bin\cygbz2-1.dll 621k 2002/05/17 C:\Cygwin\bin\cygcrypto.dll 35k 2002/01/09 C:\Cygwin\bin\cygform6.dll 19k 2002/02/20 C:\Cygwin\bin\cyggdbm.dll 929k 2002/06/24 C:\Cygwin\bin\cygiconv-2.dll 22k 2001/12/13 C:\Cygwin\bin\cygintl-1.dll 23k 2002/06/24 C:\Cygwin\bin\cygintl-2.dll 21k 2001/06/20 C:\Cygwin\bin\cygintl.dll 81k 2001/10/20 C:\Cygwin\bin\cygitcl30.dll 35k 2001/10/20 C:\Cygwin\bin\cygitk30.dll 45k 2002/02/08 C:\Cygwin\bin\cygjbig1.dll 119k 2002/02/09 C:\Cygwin\bin\cygjpeg6b.dll 20k 2002/01/09 C:\Cygwin\bin\cygmenu6.dll 175k 2002/01/09 C:\Cygwin\bin\cygncurses++6.dll 202k 2002/01/09 C:\Cygwin\bin\cygncurses6.dll 12k 2002/01/09 C:\Cygwin\bin\cygpanel6.dll 40k 2001/11/21 C:\Cygwin\bin\cygpcre.dll 39k 2001/11/21 C:\Cygwin\bin\cygpcreposix.dll 175k 2002/05/24 C:\Cygwin\bin\cygpng12.dll 170k 2002/01/21 C:\Cygwin\bin\cygpng2.dll 22k 2002/06/09 C:\Cygwin\bin\cygpopt-0.dll 156k 2002/05/17 C:\Cygwin\bin\cygssl.dll 390k 2001/10/20 C:\Cygwin\bin\cygtcl80.dll 5k 2001/10/20 C:\Cygwin\bin\cygtclpip80.dll 10k 2001/10/20 C:\Cygwin\bin\cygtclreg80.dll 253k 2002/02/10 C:\Cygwin\bin\cygtiff3.dll 623k 2001/10/20 C:\Cygwin\bin\cygtk80.dll 668k 2001/04/09 C:\Cygwin\bin\cygwin1-new.dll 41k 2002/01/20 C:\Cygwin\bin\cygXpm-noX4.dll 46k 2002/01/20 C:\Cygwin\bin\cygXpm-X4.dll 50k 2002/03/12 C:\Cygwin\bin\cygz.dll 883k 2002/07/06 C:\Cygwin\bin\cygwin1.dll Cygwin DLL version info: DLL version: 1.3.12 DLL epoch: 19 DLL bad signal mask: 19005 DLL old termios: 5 DLL malloc env: 28 API major: 0 API minor: 54 Shared data: 3 DLL identifier: cygwin1 Mount registry: 2 Cygnus registry name: Cygnus Solutions Cygwin registry name: Cygwin Program options name: Program Options Cygwin mount registry name: mounts v2 Cygdrive flags: cygdrive flags Cygdrive prefix: cygdrive prefix Cygdrive default prefix: Build date: Sat Jul 6 02:16:58 EDT 2002 CVS tag: cygwin-1-3-12-1 Shared id: cygwin1S3 Cygwin Package Information Package Version _update-info-dir 00031-1 ash 20020131-1 autoconf 2.53a-1 autoconf-devel 2.53a-1 autoconf-stable 2.13-4 automake 1.6.1-1 automake-devel 1.6.2-1 automake-stable 1.4p5-5 bash 2.05a-3 binutils 20020706-2 bison 1.35-1 byacc 1.9-1 bzip2 1.0.2-2 clear 1.0-1 cpio 2.4.2 cron 3.0.1-7 crypt 1.0-1 ctags 5.2-1 cvs 1.11.0-1 cygrunsrv 0.95-1 cygwin 1.3.12-2 dejagnu 20010117-1 diff 1.0-1 diffutils 2.8.1-1 ed 0.2-1 expect 20010117-1 file 3.37-1 fileutils 4.1-1 findutils 4.1.7-4 flex 2.5.4-2 gawk 3.0.4-1 gcc 2.95.3-5 gdb 20010428-3 gdbm 1.8.0-4 gettext 0.11.2-2 ghostscript 6.51-4 gperf 0.0 grep 2.5-1 groff 1.17.2-1 gzip 1.3.3-3 inetutils 1.3.2-19 irc 20010101-1 jbigkit 1.2-6 jpeg 6b-7 less 374-1 libbz2_1 1.0.2-2 libiconv2 1.8-2 libintl 0.10.38-3 libintl1 0.10.40-1 libintl2 0.11.2-2 libncurses5 5.2-1 libncurses6 5.2-8 libpng 1.2.3-1 libpng12 1.2.3-1 libpng2 1.0.12-1 libpopt0 1.6.4-4 libreadline4 4.1-2 libreadline5 4.2a-1 login 1.4-3 lynx 2.8.4-1 m4 0.0 make 3.79.1-7 man 1.5g-2 mingw 20010424-1 mktemp 1.4-1 mt 2.0.1-1 mutt 1.4-1 ncftp 3.1.3-1 ncurses 5.2-8 newlib-man 20001118-1 opengl 1.1.0-6 openssh 3.4p1-4 openssl 0.9.6d-1 patch 2.5-3 pcre 3.7-1 perl 5.6.1-2 popt 1.6.4-4 postgresql 7.2.1-2 python 2.2.1-1 readline 4.2a-1 regex 4.4 rsync 2.5.5-1 rxvt 2.7.2-10 sed 3.02-1 sh-utils 2.0-2 shellutils 0.0 squid 2.4.STABLE6-1 ssmtp 2.38.7-3 tar 1.13.19-1 tcltk 20001125-1 tcsh 6.11.00-4 termcap 20020403-1 terminfo 5.2-3 tetex-beta 20001218-4 texinfo 4.2-3 textutils 2.0.21-1 tiff 3.5.7-1 time 1.7-1 unzip 5.50-1 vim 6.1-2 w32api 1.5-1 wget 1.8.2-1 which 1.5-1 xpm 4.0.0-2 xpm-nox 4.2.0-1 zip 2.3-2 zlib 1.1.4-1 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/