"Consider the fork() system call. We benchmarked it,
and found that as everyone thought, it takes a long time and is
expensive. That's bad, but probably unavoidable. The Apache people
already knew this, and therefore go to trouble and expense to avoid
forking when possible. They changed their algorithms and wrote code
to avoid fork, when that programmer time could have been used for
other interesting stuff. Of course they cannot avoid fork entirely.
Further, no one knows how much cost they pay by avoiding it when
possible. So it's hard to know the true cost of fork for something
as common as Apache.
Now what about Windows? Windows doesn't have fork(), and they
don't even have anything totally like fork(). So how do we compare
the fork() time we measured in Linux to anything in Windows? We
Further, the difference between Linux and Windows has forced
Apache and IIS to use different algorithms, so even they're hard to
In general, when it is possible to compare some function that
both have, Linux does well. It does not always win, but it wins
often. Reading a file is an example of functionality that both
operating systems have."