Ever since Apple released Safari 5.1, people have not been happy about the way it will eventually reload whatever tabs you have open. For anyone with an iOS device (more so, the iPad), that is how Safari works; makes sense since the limiting factor on those devices is RAM. For a desktop browser, this behavior is absolutely asinine.
On my Mac Pro, I have 12GB of RAM so it isn’t that big of a deal if the web browsers takes a chunk of that. I’m one of those nutcases who actually uses three different web browsers mainly because each browser handles some sites better than others. The following table shows the browser, number of tabs opened, and amount of memory being used. And I know some dingleberry will ask why in the world do you have that many tabs opened…. to which I will respond with a question, do you have only one application open at any one time? It’s about different uses and needs and some of us make use of content in multiple tabs (others may be running actual web apps like say in a corporate environment).

 

Browser # of Opened Tabs Real Memory being Used
 Camino  44  680MB
 Firefox  12  225MB
 Safari  50  1.18GB

Additionally, there is another process called Safari Web Content (aka WebKit2 WebProcess) using 1.37GB. Yes, Safari is one hell of a memory hog. One of Apple’s design goals was to isolate and sandbox various processes; one of them included unhinging the user interface of Safari from the process which loads the content so that users would see less beach balls or if something crashed in another tab/window (like say the Flash plug-in), it wouldn’t bring down the entire browser. That is all fine and dandy but Apple also decided to bring the iOS behavior of eventually flushing memory being used by the Safari Web Content process to Mac OS X. Note there are times when the WebKit2 WebProcess has crashed (Safari will display a dialog warning that all tabs and windows will reload) which previously, would have amounted to the entire browser beach balling anyway.  But that is not the issue. It is about the decision to free memory being used by the Web Content process which means that when you go back to another tab, the content is being reloaded (and this happens with every single tab once you click on them). And no, you could have far fewer tabs opened (even just one) and will still be bitten if you go away from Safari long enough, and perform some other tasks which take up memory. Another negative impact of this “brilliant design” is that if you happen to have any downloads in progress and this memory flush takes place, all those downloads are killed (this part could be a bug). I make use of only three Safari extensions; AdBlock, ClickToFlash, and Javascript Blacklist. Disabling them makes no difference; it just prolongs the inevitable from happening.

As mentioned, my Mac Pro has 12GB of RAM so it is not like it is memory constrained. In previous versions of Safari, I had no issues with it going on its merry way chewing up whatever memory it could grab.  When I needed content reloaded, I could do that on my own. When I felt the whole UI was slowing down because of its memory usage, I would quit and relaunch the app myself (restoring all previous tabs from the history menu). Now, I have to deal with “tab roulette” where I have no idea when the content of those tabs will be refreshed.  In other words, Safari 5.1 isn’t reliable for those times when I need the content of those tabs to remain static. And while I’m writing this post via Safari, I find myself selecting all and dragging the content to text clippings to save what I have written just in case (that is another annoying thing, losing the content when posting when you click away, click back, and find that it goes through its flush and reload). Unfortunately, every other browser has not been a suitable replacement for some of the things Safari did better (and I refuse to use Chrome which has its own set of issues).

One Comment

Leave a Reply