Vaclav Haisman wrote:

On Sat, 28 May 2005, Gerrit P. Haase wrote:


Andy Ross wrote:

But as I noted in my original post: It's not waiting on the disk
reads.  Comment out the split() call and watch the delays disappear.
Raw I/O speed in cygwin is comparable to mingw or MSVC.  The overhead
is due, somehow, to activity within/under split().  Other than
allocation, that function doesn't do any meaningful library
interaction that I can see (although Vaclav's suggestion about
exception handling is a very good one...).

Can you port the testcase you provided to C to see if it makes a
difference, please?


Or maybe at least try -fno-exceptions...

This speeds up things about 20% for me:

$ g++ -fno-exceptions -c cygspd.cc -o cygspd.o

$ g++ -fno-exceptions -o cygspd cygspd.o

$ time ./cygspd cygspd.dat

real    0m39.892s
user    0m38.405s
sys     0m0.155s

instead of compiling without the flag:

$ time ./cygspd cygspd.dat

real    0m51.071s
user    0m50.108s
sys     0m0.046s

Using optimization speeds up things again:

$ g++ -fno-exceptions -O7 -c cygspd.cc -o cygspd.o

$ g++ -fno-exceptions -o cygspd cygspd.o

$ time ./cygspd cygspd.dat

real    0m28.024s
user    0m27.030s
sys     0m0.061s


Gerrit
--
=^..^=

--
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/

Reply via email to