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/