[wayne@cs.toronto.edu: Cygwin-1.5.5 sscanf on floats: 20 times slower than 2 years ago]

Corinna Vinschen corinna-cygwin@cygwin.com
Mon Nov 17 21:40:00 GMT 2003

Since scanf and the floating point arithmetic is implemented in newlib,
I've redirected this message there.  Does anybody have an idea, what
could slow down float scanning in sscanf by a factor of 20?


----- Forwarded message from Wayne Hayes <wayne@cs.toronto.edu> -----
> Date: Sun, 16 Nov 2003 09:54:31 -0500
> From: Wayne Hayes <wayne@cs.toronto.edu>
> Subject: Cygwin-1.5.5 sscanf on floats: 20 times slower than 2 years ago
> To: cygwin@cygwin.com
> 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
----- End forwarded message -----

Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Developer                                mailto:cygwin@cygwin.com
Red Hat, Inc.

More information about the Newlib mailing list