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-1.5.5 sscanf on floats: 20 times slower than 2 years ago


Hello.  Until recently I was running W2k with an ancient version of
cygwin; I don't know what version it was, but if anybody cares I've
put a copy of cygwin1.dll (dated 2001-May-20) at

	http://www.cs.toronto.edu/~wayne/tmp/cygwin1-old.dll.gz

It worked fine on W2k for the past 2.5 years.

I recently upgraded to Windows XP and this old cygwin stopped working.
No problem, I say, it's also time to upgrade cygwin, so I go install the
most recent version.

Everything works fine, except one of my I/O intensive simulations starts
running about 20 times slower!

After copious mucking about, I finally narrowed it down to sscanf: sscanf
on double precisions numbers, such as

    double a;
    char line [80];
    fgets(line...)
    sscanf(line, "%lf", &a);

runs about 20 times slower than in the old cygwin.  Replacing the sscanf
with a call to atof gets back the old speed.  It's only noticable, of
course, if you're scanning a huge file.  In my case, it's a 60MB file
that contains tens of thousands of lines of ASCII floating point numbers.

So, consider this a bug report.  A slowdown of a factor of 20 is not really
a good thing.

The output of "cygcheck -s -v -r > cygcheck.out" can be found at

    http://www.cs.toronto.edu/~wayne/tmp/cygcheck-XP-1.5.5.out.gz

Thanks!

    - Wayne


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.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]