Improving MacOS X Performance

UPDATE: This article is now very old, and may not be applicable to more recent versions of Mac OS X

In this short article, I'll outline some ways to trim down the interface and optimize both the perceived and actual speed of MacOS X. You may find this useful if you're stuck on older Mac hardware and feel that overall system responsiveness just isn't good enough. Of course, none of these tips will ever make MacOS X feel as fast as MacOS 9, but they may just tip the balance in favor of the OS being usable on your old machine.

User interface

You'll probably have noticed that Aqua, the MacOS X graphical user interface, is crammed with all sorts of candy goodies: zooming windows, genie effect, transparencies and such. While this is nice in a way it soon grows tired, and you may want to cut down on these effects to save yourself some CPU cycles. Here are my recommendations:

1. Use the Scale effect for Dock minimization

Open System Preferences, click on the Dock pane and set minimize so that it uses the Scale effect. This is much faster than the default Genie effect. Also, make sure to disable the magnification effect, which is also demanding on system resources.

2. Turn off Finder window zooming

As of version 10.2 (Jaguar), MacOS X Finder windows will zoom open using the Scale effect. The Finder interface will feel much more responsive if you turn this off. Open the Terminal applications and type in the following: defaults write com.apple.finder AnimateWindowZoom -bool false. If this doesn't work, you can try editing a file called "com.apple.finder.plist" in your Preferences folder. Your Preferences folder is located in the Library folder in your Home folder. The path is ~/Library/Preferences/com.apple.finder.plist. In this property list, you must find a key called AnimateWindowZoom, which will be followed by "". You must change this to "". If all this is too much trouble, you can always download Cocktail, which allows you to change this (and many other settings) using a graphical user interface.

3. Turn off rectange effect when opening files

Get TinkerTool. This little software gem allows you to change many interface options. Many of TinkerTool's former options have now been taken over by Apple's own preference panes but it still remains useful for many other things. Of special note is the ability to turn off the rectangle effect when opening files. This effect is enabled by default and will make opening files feel slower than it really is.

3. Increase mouse speed / get a multi-button mouse

Set your mouse sensitivity to the highest level possible using the Mouse preference panel in System Preferences. It may feel a little awkward at first, but you'll soon get used to it and it'll give you a feeling of speed while using the OS. I also seriously recommend that you get yourself a multi-button mouse if you haven't done so already, preferably with a scroll wheel,. Make sure it's an optical one since they feel smoother and don't get clogged with dirt. Logitech generally sells excellent mice and have some nice MacOS X drivers that allow you to configure all the mouse buttons and set mouse speed higher than the Apple settings. USB Overdrive, which allows you to configure any USB mice, is also a good solution.

Multi-button mice will make the interface faster because instead of holding down your single mouse button for some time to get a contextual menu, you can now right-click with your multi-button mouse to get it to spring up immediately.

4. Turn menu fade-outs off

Perhaps you'll have noticed that when a MacOS X menu closes, it doesn't just disappear with a snap. It fades away. This is another eye-candy feature that you'll want to remove. I don't know which property list (if any) sets this feature, but you can turn it off by using Unsanity's FruitMenu.

5. Use an Aqua theme without transparencies

Aqua uses transparencies to a considerable extent. Windows in the background have transparent title bars and the menus are partially transparent. There's a nice way to get rid of these, but it involves installing a new Aqua theme. You'll need to download Duality, an application that allows you to change themes. The basic Aqua theme is (in my opinion) very nice, and you may not want to replace it with something that looks different. Hence, you'll do well to download the Aqua Extreme theme from Max Themes This theme is identical to Aqua except that it removes all menu and window transparencies, resulting in snappier menu and window responsiveness.

6. Have few applications installed

Many people tend to download and install applications only to look at them once and never use them again. This was all very well in MacOS 9 but it will result in worse performance for contextual menus in MacOS X. This is because of the new "Open with..." contextual menu item introduced with MacOS X 10.2. When you right-click on a file, a contextual menu pops up and when you scroll down the items past the "Open with..." item, the Finder generates a submenu with a list of applications that are capable of opening the file. The more applications you have installed, the longer it takes to generate and draw this menu. This is especially bad for common file types, such as text files, that can be opened with a great deal of applications.

7. Run in 16-bit colour

This one is an old hat, but I'll mention it anyway. Running MacOS X with Thousands of colors instead of Millions will result in snappier performance on machines with older graphics cards (i.e. those cards not compatible with Quartz Extreme)

8. Set keyboard repeat rate to maximum

Open System Preferences, open the Keyboard preference pane and set key repeat rate to its highest setting and set repeat rate to the shortest possible. This makes your typing feel faster. :)

9. Remove window and menu shadows (only for the really desperate)

Window shadows can be removed using Unsanity's ShadowKiller. This will improve interface performance considerably, but at great cost. The window layers losesall feeling of depth, making the interface clunky and annoying to use.

10. Use a dedicated swap file partition (on a seperate drive?)

Benchmarks seem to indicate that OS X virtual memory performs much better with a dedicated swap file partition, especially if it's on a seperate hard drive from the one you're booting from. This is not for the faint of heart, however, since it requires messing about with disk partitioners and the command line. I've done this and although I can't say I feel much difference, I suspect this is largely thanks to the fact that my machine has 512MB of RAM. For intructions on setting up a dededicated swap partition in Jaguar, check out this discussion at xlr8yourmac.com. For benchmarks demonstrating improved performance, see this article at resexcellence.com.

11. Create a RAM disk for your browser cache

For information on how to relocate your browser cache to an ultra-fast RAM disk, please see this hint



Software

A few tips on what software to use and what to avoid.

1. Don't use the Classic Environment

On a G4 450Mhz Sawtooth PowerMac, the Classic environment consumes between 2%-5% of the processor when running in the background. This performance hit will be even worse on older systems.

2. Use Safari

If you're like me, you spend a great deal of your time browsing web pages. The interface and rendering speed of the browser is therefore very important. Apple's Safari browser is by far the fastest and most responsive of MacOS X browsers. If you can get away with using it then do it.

3. Don't use iTunes for MP3 playback

iTunes is a fairly nice MP3 player but it's a processor hog when it comes to simple MP3 playback, consuming between 12%-20% of the processor on my G4/450 Sawtooth for this simple task. There are many other (free) MP3 players for MacOS X which use far less. However, when it comes to encoding speed, iTunes is by far the speed king with its heavy AltiVec optimizations.

3. Don't use applications with brushed metal themes

Windows with the brused metal look are more difficult for the graphics layer to draw and live resizing is painfully slow on older systems. I therefore recommend that you avoid using applications that rely on such windows. Of course, this makes little difference for small, seldom-used utilities but if you use applications such as iTunes, iChat and Safari on a daily basis this can skew your impression of system performance. But I just said that you should use Safari? Well, it's possible to remove the brushed metal look from some applications (Safari, amongst others). You'll need to have the Developer Tools installed. You click on the application in question, select "Show Package Contents" from the contextual menu and navigate within the package to the Resources folder, where you can find the application's Nib files. Open the Nib files with Interface Builder, open an info pane for the relevant windows and deselect the "Textured window" option.

4. Always use the newest version of MacOS X

I know that this hardly needs to be mentioned, but I thought I'd do so anyway. Apple is improving threading and optimizing performance with every new upgrade, even the small ones. This can make a significant difference in performance so make sure your OS is always up-to-date by downloading new OS upgrades with Software Update.



Hardware

Good, relatively cheap ways to improve performance via new hardware

1. Get a Quartz Extreme-compatible video card

This will allow the system to load the burdensome task of drawing the interface elements on to your video card, leaving more processor cycles free for other uses. A cheap ATI Radeon card or even an ultra-cheap flashed retail PC GeForce 2MX should do the trick. This is by far the cheapest way to improve the OS X interface performance of your old system. Of course, if you're using a laptop, this is not an option.

2. Get a new, fast hard drive

MacOS X uses virtual memory paging prodigously. This means that there's a lot of disk access going on. A good way to improve your older system's performance is to buy a new hard drive. Even if your computer only has an ATA/33 or ATA/66 IDE bus, you'll see noticable improvement if you buy a new, mid-range drive. In my case, I saw a 24% disk performance improvement when upgrading from an ATA/66 5400 rpm 2MB buffer drive to a new 7200rpm ATA/100 drive with an 8MB buffer. This increase is also reflected in improved overall system performance. Later, when you buy a new system you can continue to use this drive with it, so this isn't a system-specific investment.

3. Use a G4 processor or better

MacOS X is seriously optimized for the G4 processor. Functions throughout the OS take advantage of the AltiVec vector processing unit which means that G4 chips will run MacOS X much faster than G3s. Upgrading your processor to a cheap G4 may be a good idea, but with PowerPC processor upgrades costing as much as they do, you'll probably get a better deal by purchasing a new box from Apple.