Norman Vine wrote:

On Thursday 26 May 2005 22:48, Andy Ross wrote:
Attached is a patch that pre-reads the directory contents ahead of
time (currently that is a list of length zero) to avoid having to hit
the kernel (twice!) for every airport.

Under Linux, this doesn't provide much speedup.  But Windows (and
especially the cygwin libraries) has a somewhat less robust I/O system
in the face of many tiny operations.  Hopefully it will help there.
Can someone on each of cygwin, mingw and/or MSVC try this out and see
if it helps?

Hmm could you please whare with us what isn't 'robust' about the Cygwin file system.

It is slow compared to the Linux or Native Win32 file system in that it has to go thru an extra translation layer inorder to get Unix behaviour under Win32 but ..... implying that Cygwin file operayions are not robust borders on pure fud

Hi Norman,

I think you just need to read Andy's words as a fancy way to say "slower". :-) I'm sure he's not questioning the correctness of the results.

I know that you know all this, but for the sake of others, unix is optimized to efficiently run a lot of little processes or threads at the same time, all competing for the same cpu. It is also pretty well optimized for lots of little disk accesses, and has a pretty efficient file cataloging/indexing system (and linux has about 42 different journaling file systems choices each with their own strengths and weaknesses.) :-) Windows tends to do it's best when it's running one really big application or loading one really big file ... i.e. you fire up Word to edit your 100Mb power point presentation. That is often the typical use for a windows machine ... one person doing one primary thing at a time.

Unix was designed from the start to handle multiple users running many little applications all at the same time and do it efficiently and cleanly so each user thinks he/she has good performance and hopefully doesn't notice anyone else is even using the same machine. Unix has been doing this stuff for 40 years now so it's really good at it. Windows started out as DOS which had no multitasking capability, had an extremely rudimentary file system, and extremely rudimentary memory management ... microsoft has tried to grow (or beat) their product into a full fledged, modern, multitasking system, but we have all seen their struggles over the years addressing issues like memory protection (so one errant app can't take down the whole system), expanding their file system limits, trying to develop some sort of sensible security model, etc. They've gone from cooperative multitasking in the early versions of windows to preemptive multitasking in the later versions. The file systems have improved, memory management has improved, security and protection has improved, pretty much everything has improved. But it as been a process where the 800 pound gorilla has beat these features into a rudimentary system (dos) where all these "modern" operating system concepts were never really conceived or intended, rather than having them designed in at the start. Clarity of design purpose is a luxury unix has enjoyed ... although like windows, it has changed significantly over the years to adapt to new needs and new ideas ...

So if you are running a lot of little applications all at the same time, or trying to read/write a bunch of little files all at the same time, unix generally seems to beat the pants off windows. That's not necessarily a common scenario so don't take that as a knock against windows. However, we do hit this at times with FlightGear so it can bite windows users in the sense of much slower load times than the unix people are seeing.


Curtis Olson
HumanFIRST Program
FlightGear Project
Unique text:        2f585eeea02e2c79d7b1d8c4963bae2d

Flightgear-devel mailing list

Reply via email to