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] | |
I am running Cygwin environment on an IBM Intellistation (1GHz PIII, 512Mb
memory) with Windows 2000 Professional (SP 2). I am attaching the output
of cygcheck -s -v -r. I hope that attachments can be handled by the
discussion list server.
Here is the problem again. A simple C code presented below (and also as an
attachment) runs 24 times slower under cygwin1.dll versions 1.3.11 and
1.3.12 than under 1.3.10 (and numerous previous versions). Could somebody
pleas confirm this?
I compiled the code below using "gcc uu.c". Then I created a simple text
file called "input" with 300,000 lines and 12 columns of floating point
numbers. This is easy using a text editor - the lines can be the same. I
ran it under current version of cygwin (1.3.12-1) using "time a.exe" and
got 241.7s total time and 239.3s of user time.
Then I replaced cygwin1.dll with version 1.3.10 and rerun the test. I got
10.7s total time and 8.7s user time. This is almost 24-fold slowdown!
Here is my code. It is also attached, so one can simply detach and try it.
As one can see it only does I/O and nothing else.
=============================uu.c===================================
#include <stdio.h>
int main(int argc, char *argv[])
{
int i, nobs;
static float dat[300000][12];
char filein[6], fileout[7];
FILE *fp;
strcpy(filein, "input");
strcpy(fileout, "output");
fp = fopen(filein, "r");
i = 0;
while(fscanf(fp, "%f %f %f %f %f %f %f %f %f %f %f %f",
&dat[i][0], &dat[i][1], &dat[i][2], &dat[i][3], &dat[i][4],
&dat[i][5], &dat[i][6], &dat[i][7], &dat[i][8], &dat[i][9],
&dat[i][10], &dat[i][11])
!= EOF)
i++;
close(fp);
nobs = i;
printf("%d data lines read from %s\n", i, filein);
fp = fopen(fileout, "w");
for(i=0; i<nobs; i++)
fprintf(fp, "%f %f %f %f %f %f %f %f %f %f %f %f\n",
dat[i][0], dat[i][1], dat[i][2], dat[i][3], dat[i][4], dat[i][5],
dat[i][6], dat[i][7], dat[i][8], dat[i][9], dat[i][10], dat[i][11]);
close(fp);
printf("%d data lines written to %s\n", i, fileout);
exit(0);
}
====================================================================
Could somebody kindly repeat my experiment or at least time this code using 1.3.12 cygwin1.dll?
Thanks in advance,
Andy
(See attached file: ccc.txt)(See attached file: uu.c)
__________________________________
Andy Jaworski
Engineering Systems Technology Center
3M Center, 518-1-01
St. Paul, MN 55144-1000
-----
E-mail: apjaworski@mmm.com
Tel: (651) 733-6092
Fax: (651) 736-3122
Attachment:
ccc.txt
Description: Binary data
Attachment:
uu.c
Description: Binary data
-- 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] |