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: Wayne Hayes To: cygwin AT cygwin DOT com Subject: Cygwin-1.5.5 sscanf on floats: 20 times slower than 2 years ago Message-Id: <03Nov16.095432edt.453226-16291@jane.cs.toronto.edu> Date: Sun, 16 Nov 2003 09:54:31 -0500 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/