This is the mail archive of the cygwin@cygwin.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cygwin/cvs performance observations...


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 "month<blank><blank>day", where day is 1-9,
where the native would list it as as "month<blank><zero>day", where <zero>
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/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]