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
I realized.

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

Reply via email to