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.



Jaguar introduced QuartzExtreme, which used your 3D graphics card for window compositing and rendering. Doing this enabled things like alpha translucency and drop shadows (both of which Mac OS X makes extensive use of) to be used "for free". This provided a much needed speedup for GUI operations.


Panther, enhanced QuartzExtreme as well as providing a number of other speedups, finally making simple tasks like scrolling and using pull down menus bearable. Panther also greatly improved compatibility with Windows file sharing (using Samba 3.0) and had several significant enhancements to the BSD and GNU command line tools included. Xcode? debuted with the release of Panther, obsoleting the aging ProjectBuilder? and adding several nice new features to the free GCC-orienteded development environment included with the OS.


Tiger continues to enhance performance, although many of the enhancements are not available yet. Quartz2DExtreme was to debut with Tiger, but ships disabled on all Macs. It takes acceleration on the graphics card one step further by using programmable shaders to render GUI elements. Rumour has it it will be enabled in a future "Tiger" point release.

It is unknown whether system calls like sigaction() still perform terribly compared to their Linux counterparts, but it has become increasingly clear that the UNIX subsystem in OS X is more of a compatiblity layer, and that by and large native OS X applications do not use POSIX system calls in any situation -- rather the POSIX system calls are more of a wrapper around others.

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 -- PhilMurray

Found the article at - it says in particular "Mac OS X is incredibly slow, between 2 and 5(!) times slower, in creating new threads, as it doesn't use kernel threads, and has to go through extra layers (wrappers). No need to continue our search: the G5 might not be the fastest integer CPU on earth - its database performance is completely crippled by an asthmatic operating system that needs up to 5 times more time to handle and create threads." He then follows up in a subsequent article and clarifies here why it is not quite correct but peformance is still bad -- IanMcDonald

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