Before we get started
After spending over 20 years working with Macs, both old and new, theres a tool I think would be useful to every Mac owner who is experiencing performance issues.
CleanMyMac is highest rated all-round cleaning app for the Mac, it can quickly diagnose and solve a whole plethora of common (but sometimes tedious to fix) issues at the click of a button. It also just happens to resolve many of the issues covered in the speed up section of this site, so Download CleanMyMac to get your Mac back up to speed today.
You may have noticed a change in the way Safari manages tabs in Lion. When a tab has been left inactive for a while Safari may start reloading each tab as you switch to them.
It turns out that this is actually a new feature in Safari 5 (and Webkit 2) called “multi-process windows” which separates the UI processes from web/content processes meaning that in theory a problem with one won’t affect the other causing the entire application to quit. However for some reason the recent release of Safari web processes seem to crash quite often, which forces Safari to refresh each tab seemingly randomly.
If you finding this a real issue there is a workaround, unfortunately it means sacrificing some of Lions new gestures (two finger back & forward, pinch to zoom and the two finger tap smart zoom gesture) and may cause problems with the newer extensions you have installed.
The first step is to enable Safaris debug menu, to do this open the Terminal and type:
defaults write com.apple.Safari IncludeInternalDebugMenu 1
Relaunch Safari now and you should see the Debug menu appear beside the Help menu. In the Debug menu uncheck the “Use Multi Process Windows”. Now close all open Safari windows, and that’s it tabs will now stop unexpectedly reloading. From now on all windows will have [SP] as a suffix to the page title, which stands for Single Process.
If you do miss using any gestures or extensions all you need to reselect the Use Multi Process Windows option and to remove debug menu from Safari reopen the Terminal and this time enter:
defaults write com.apple.Safari IncludeInternalDebugMenu 0