Matthias Fröhlich wrote:
> I recently profiled flightgear with gprof and with callgrind.
> One of the functions most cpu intensive function under Linux (fedora core 3)
> is the isspace() function in split.
> That might be even worse with the windows implementation of isspace.
Well, at this point it's pretty clear that there is a cygwin
performance issue -- after the flame war died out, they started
actually working on it and traced it down to an interaction between
the signal handler emulation code, pthreads, and C++ exceptions. Or
so I understand it, anyway. My intuition about a synchronization bug
seems to have been correct, but it's not in the allocator; there's a
lot more library interaction going on behind the scenes in cygwin than
But yes, we ended up zeroing in on the loading of apt.dat.gz because
that step *is* a big chunk of initialization. Even on my machine,
which starts in 10 seconds, this takes 40% of the initialization time.
The reason you're seeing std::vector and isspace() show up in the
profile isn't really that these functions are slow, it's that
FlightGear is using them on every character/field of a 160k line
Flightgear-devel mailing list