Penguin
Note: You are viewing an old revision of this page. View the current version.

MacOSX is AppleCorporation's sexy OperatingSystem, built on top of Darwin, a BSD variant using a Mach MicroKernel.

It's rather slow on pretty much every platform you throw it at. If you were to run it on, say, an old PowerMac G3, you may be forgiven for thinking that upgrading to a PowerMac G4 would make it a lot faster. For the most part, you would be wrong.

Also, you may think that the slowness is superficial and only applies to trivial GUI things like window resizing, file dialogs and pull down menus. You would be wrong about this, also. A call to sigaction(2) takes, by observation, around 20 times the time to execute under MacOSX than under Linux on the same platform. In real world times, that was around 3 seconds.

Speculation has it that this is due to the very use of a MicroKernel.

I have seen articles which state that it is due to the time to create a new thread and demonstrated it through simple C programs. Can't find the article at present but find plenty of references saying MySQL and Apache are painfully slow -- IanMcDonald

AFAIK It only applied to pthreads. Every app written in Carbon or Cocoa (ie, every single GUI app on OSX) uses NSThreads which doesn't seem to be painfully slow from actually using MacOSX. Incidentally, my 1.4Ghz Mac Mini kicks the crap out of my Celeron 1.1GHz PC when benchmarking MySQL, which other benchmarks would have you believe that's not possible, so it can't be that bad :P. Also, some have attributed the slowness in MySQL to the fact that InnoDB uses fcntl() to guarantee data has been written to disk instead of fsync(). See http://lists.apple.com/archives/darwin-dev/2005/Feb/msg00072.html -- PhilMurray

Subsequent revisions have become much better in terms of perception of latency. While 10.0.x was quite painful on a G3, 10.2 was snappier (well, until you started swapping, at least) and apparently 10.3.x is further optimised.

Note: the Ⅹ in MacOSX has nothing to do with the X windowing system, it is the roman numeral for 10, which follows on from the previous version MacOS 9.

See also:


Part of CategoryOperatingSystem