Tuesday, June 05, 2007
Surfin' Safari (slowly)
A number of folks around me have been complaining about Safari lately. There are a number of things wrong with Safari, and I think even Apple would happily admit them.
They have a new version coming out with Leopard in the fall and I imagine they're quite happy to make you wait until then to get any relief. They just don't decouple Safari from the OS it ships with. (As in, you probably won't be able to use the new version of Safari with Tiger, just as you can't use Tiger's version with Panther)
There are a pile of things you can do to help Safari run a little faster, and I'll try to detail a few of them below in the hopes that you'll get some mileage from them and be happier using your computer. Also, there are some really great alternatives to using Safari (which may or may not have your favourite Safari features) which I'll try to detail as well. Finding a browser that really and truly suits your personal needs is hard and painful and I want it to be as easy as it can be.
First of all, there are some easy things you can and should try:
They have a new version coming out with Leopard in the fall and I imagine they're quite happy to make you wait until then to get any relief. They just don't decouple Safari from the OS it ships with. (As in, you probably won't be able to use the new version of Safari with Tiger, just as you can't use Tiger's version with Panther)
There are a pile of things you can do to help Safari run a little faster, and I'll try to detail a few of them below in the hopes that you'll get some mileage from them and be happier using your computer. Also, there are some really great alternatives to using Safari (which may or may not have your favourite Safari features) which I'll try to detail as well. Finding a browser that really and truly suits your personal needs is hard and painful and I want it to be as easy as it can be.
First of all, there are some easy things you can and should try:
- Restart Safari
Many people, especially laptop users (me too), leave Safari running for days or weeks on end. Because Mac OS X is so robust and can stay up for weeks or months without restarting, and because we sleep our computers so much (closing the lid) I think Safari often runs long enough to start having problems keeping everything straight.
Typical use case:- open computer
- do something with Safari
- close computer
- repeat a zillion times a day for six weeks
- notice Safari is slow
- Run Maintenance And Restart Your Machine
Get a maintenance program like Cocktail and run the maintenance scripts (which don't get run because your machine is never on when they try to run), clean out your font and internet caches, and restart the machine. There's a lot of housekeeping that Mac OS X knows how to do for itself, and a good chunk of it is 'internet' related. - Use Safari's Maintenance Tasks
Safari knows how to do some stuff to keep it running quickly as well.- In the History menu, you can select "Clear History" - dragging around months of browsing history can be slightly taxing.
- In the Preferences window you can clear the Autofill history using the button on the Autofill tab. Again, dragging around months of form data can really slow things down. (FWIW I have my autofill turned right off, though you can do some finer tuning if that's what you're into as well. For me having it turned off completely means I don't have to go in and clean it out or maintain which things I want on 'the list', etc)
OR - In the File menu select "Reset Safari" - this will do some basic cleanup in Safari. It will also kill your browsing history and clear any sessions and cookies, and flush out your forms Autofill, so be prepared for that. It's just a quick shortcut for doing all the things mentioned above in one step.
- In the History menu, you can select "Clear History" - dragging around months of browsing history can be slightly taxing.
- Get Your Hands Dirty
If you're still seeing the spinning-beachball-of-death or just unhappy with Safari's speed, there are still some things you can do. (though some of them might not be much help)- Delete your icon cache: (~/Library/Safari/Icons)
Safari remembers sites' favicons for the bookmarks list, and it can really chew up a pile of time sorting through them. Delete the cache to see an increase in speed, but lose your favicons. This is something that will need to be done periodically. - Disable localization:
If you're only using Safari in one language you might get some small increase in performance by turning off the localization features in Safari. In the Finder, find the Safari app in the Applications folder, and do a Get Info on it. Select the Languages pane and deselect all languages you don't plan on using. (I'm skeptical that this will really do much for you) - Make room on your drive:
Make sure you have at least 20% of your hard drive free, so your computer has lots of room to put temporary, swap, and cache files out to disk whenever it needs to. - Extreme measures:
- If you're really into getting super performance out of your browser you can set up a RAM disk and put the computer's swap files on it. It's a bit risky and it's not for me to explain here. You can do your own research if you think you're into this approach. There's pros and cons.
- You could try turning off your widgets - they suck up a lot more resources than most people realize, though then you'd have to go without the widgets. It's a trade off.
- If you're on a laptop and you find Safari is slower when you're running on the battery, go to your energy settings System Preferences panel and turn off the processor cycling option, which will run your computer's processor a little slower when you're on the battery to conserve power. Of course, you battery won't last as long... again, it's a trade off.
- Delete your icon cache: (~/Library/Safari/Icons)
- More Hardware
The only thing left is to buy more RAM, a bigger hard drive or a better machine. Those shiny new LED/SantaRosa MBPros look pretty sweet! - Other Options
Wait! There is one thing left to try: other browsers! Maybe I'll put this into a separate post....