For some years, Safari has been my default browser. I generally prefer its choices in framing and ergonomics and shortcuts over all others. But I’ve had to stop using it.
In recent releases, Safari has been re-architected, with some of the work farmed out to a thing called “WebProcess”. This doesn’t seem to be working out that well. Specifically, I note that:
Switching from tab to tab is sluggish, and when the system gets overloaded, you get a lot of gratuitous repaints.
The WebProcess and Safari processes feature prominently in readouts of what’s consuming the system’s CPU and memory.
When you have a few dozen tabs open, some of them for days, and some of them being full of dynamic code, the whole system gets increasingly slow and unstable.
To be fair, part of the problem is the proliferation of Web apps that are extremely heavyweight in terms of the amount of JavaScript code sloshing around in the background. A notable example is Google+. Even sprucing up this blog’s typography has involved quite a bit of industrial-strength JavaScript. But that just seems to be what a modern Web browser has to suck it up and deal with.
It turns out that for me, it’s convenient to run three browsers: One logged into the Googleplex, one for news and banking and Google+, and one for personal Gmail, which isn’t the same account as for Google+; anyone who knows what “AFYD” stands for will understand why.
They used to be Chrome, Safari, and Firefox, respectively. Now they’re Chrome Canary, Chrome, and Firefox. My whole system is unsubtly snappier and less fragile. And I’m not even using a Flash blocker; I still don’t like Flash, it’s just that both Chrome and Firefox seem less traumatized by it.
I still like Safari in principle and suspect that they’ll fix it up before too long so I can start using it again.
Comment feed for ongoing:
From: Dan Fabulich (Sep 18 2011, at 10:23)
Apps For Your Domain? Additional First Year Depreciation? Always Follow Your Dreams?
[link]
From: Jérôme (Sep 18 2011, at 10:49)
Instead of using two versions of Chrome (Stable and Canary) and Firefox, I would only use Chrome Beta with multiple profiles, which you can enable on about:flags.
It works amazingly well: I now synchronize two profiles with 2 personal Gmail accounts and one profile for work, synced with a Google Apps for Business account. I can run all three profiles at the same time, and I can rely on Chrome to keep all my bookmarks, history, apps, extensions, preferences, search engine and open tabs sync for each account, across all my devices!
[link]
From: Mike Loukides (Sep 18 2011, at 11:06)
Interesting--I do more or less the same thing, except that I've noticed the problems with Firefox more than Safari. (I don't use Safari much.) Firefox tends to accumulate the bulk of my tabs, and when the machine bogs down, killing it is usually the fix. This suggests it might be an OS X problem, as much as a browser problem.
Canary might be worth a try. Though I worry that it will look too similar to Chrome; when using multiple browsers, it helps to have visual clues about which is which.
[link]
From: Gavin B. (Sep 18 2011, at 11:41)
https://code.google.com/p/google-enterprise-connector-afyd/
says:
The Apps-For-Your-Domain Connector is experimental, unsupported code intended to enable the Google Search Appliance to search and serve documents and other content stored in a Google Apps-For-Your-Domain, and made available through GData APIs.
[link]
From: Pierre Phaneuf (Sep 18 2011, at 11:54)
Chrome profiles are quite handy, letting me run multiple instances of the browser with different credentials, at once. I believe Firefox has an equivalent feature as well.
[link]
From: David Singer (Sep 18 2011, at 13:00)
As a fellow AFYD user, I understand *that* you need a browser for Google+ and a separate and different browser for AFYD -- but I don't understand *why*. Fixing it should be a SMOP, right?
[link]
From: Osvaldo Doederlein (Sep 18 2011, at 14:23)
The bloat and sluggishness from many tabs was also a problem in Firefox, which they finally fixed in the latest releases with Compartments: the Javascript heap is still unified across all tabs and domains, but objects from each domain are allocated in subpartitions of the heap that can be garbage-collected independently. Cross-domain object references are allowed, subject to security checks and a little overhead for the GC (like remsets). It's a very interesting model because cross-domain Javascript calls pay no IPC overhead, still you have the same isolation and security advantages of domain- or tab-specific processes. Mozilla is also working in a Chrome-like, process-per-tab model, but I guess this will be optional since the memory overhead is really large for people who keep tons of tabs open.
[link]
From: Jeremy S. (Sep 19 2011, at 06:38)
You can use a Gmail/Google+ account and a Google Apps Mail account at the same time (in the same browser), however you now need to enable "multiple sign-in" - follow these steps in both your Gmail account and Google Apps account: http://www.google.com/support/accounts/bin/answer.py?answer=181599&hl=en-GB
[link]
From: Owen Morgan (Sep 19 2011, at 11:49)
It must be some kind of bug though. I'm running on a 2010 Mac Mini with 4GB of ram, currently with about 12 apps open. combined with flash, Safari, and Safari web content, it doesn't use much more than 20% CPU and 300MB ram. I'm on Lion.
I HAVE had the tab reloading thing happen though. Then safari goes crazy, takes up loads of RAM etc. But it's only once or twice. It's gotta be some kind of bug, because it rarely happens to me.
[link]
From: Steve (Sep 19 2011, at 11:52)
The AFYD issue bugs me too; I wound up using "Fake" ( http://www.fakeapp.com ) to create a standalone browser app just for Google+. You can configure it to not share cookies with Safari - and voila, it becomes its own standalone multiwindow browser that just happens to go to plus.google.com . I liked this so much I've made other standalone apps for Google Groups and a few other things where switching accounts was becoming a pain.
[link]
From: Grover (Sep 19 2011, at 12:30)
I hope you're right. I've used Safari almost since it's initial release, and always come back to it whenever I've dabbled elsewhere. But it's becoming genuinely unusable, and that makes me genuinely sad.
[link]
From: John (Sep 19 2011, at 12:59)
If you enable the Debug menu on Safari, you can then uncheck the "Use Multi-process Windows" option, which goes back to the old WebProcess-less behaviour.
The only thing that I've noticed different, besides the better performance, is that the pinch-to-zoom gestures go back to the old method.
[link]
From: John (Sep 19 2011, at 13:27)
The command line would be:
defaults write com.apple.Safari DebugNewWindowsUseSingleProcessWebKit 1
[link]
From: Steve (Sep 19 2011, at 13:38)
Sorry! Earlier I said "Fake" when I meant "Fluid." Fluid is a nice app based on WebKit for making site-specific browsers. That's what I use to make a special Google+ app.
http://www.fluidapp.com
("Fake" is also very useful, by the same guy, but it's an Automator-like tool for building automation into a browser session.)
[link]
From: John Noble (Sep 19 2011, at 16:06)
Ah jeez I'll be angry if I find out this is why my system has been running like a dog recently.
It's a last year's model Mac Mini, so not sluggish. Everything's been fine for ages and now I've been starting to wonder whether one of my hard drives isn't on the blink.
I'll quit Safari tonight and use something else exclusively. Honestly, if that's the issue, oohhh ... madness ... grrr. ;-)
[link]
From: Greg (Sep 19 2011, at 17:25)
Sometimes I thought I was the only nut using Safari with a few dozen tabs in several windows open and trying to leave it open for days at a time. I have yet to find a better organizing system for coming back to tabs I need to see again. It's like having a bunch of clutter on your desk but knowing exactly where everything is.
Anyway, Safari has been unstable used this way for ages. It's gotten different in the latest release. With this release plus now 8GB of RAM (had to see if that would help, yes, I got it pretty much mainly for Safari!) Safari doesn't crash/freeze when left open for days. It does become slow switching tabs at times and will also do those repaints as described actually fairly quickly. I find it difficult to drag myself away from using Safari though. I've been using Click to Flash/Click to Plugin for a while.
Today Firefox crashed after being open for some days the same way. Given that I often have that sitting open as well with a number of tabs, I wonder if that is more often the culprit for the sluggishness, not sure. Safari, at this point, I can't remember the last time I quit. Sometimes I try to cut some tabs then quit, then start again and reopen all tabs, just as a sort of maintenance. But I think at this point I've had Safari open for a couple weeks or more. That's pretty good. Never would have worked before.
Anyway, a rambling way of saying that at least to me some things apparently did improve in Safari even as others have gotten more annoying.
[link]
From: Pierre B (Sep 19 2011, at 18:07)
I think there might be folks that like me, changed their default browser to Chrome after a Lion update because of the bugginess of Safari.
[link]
From: Michael (Sep 19 2011, at 20:07)
I remember when not all power users had switched to Firefox and some still used IE. This is the situation today with Mac users and Safari/Chrome. The only people who still use Safari instead of Chrome is those who don't know any better or their thinking is too clouded by their love for all things Apple.
[link]
From: Ron Adair (Sep 19 2011, at 21:02)
I too hope you're right about this getting fixed soon. I've been around since well before the Safari days. I've been a devoted Safari user since day one, and have constantly touted it to friends and family as the best browser out there, bar none.
Well, that changed with 5.1. Oh, man—this is the worst browser experience I can remember having for the longest time. Too-many-to-count force quits, inspector panel not staying docked, annoying message about needing to reload all the pages if I reload one, lagging galore, and even the annoying absence of the spinny ball of death during a lag session.
I'm not sure what Apple did different, but it seems 100% all-natural wrong to me.
@John: I'm not seeing "Use Multi-process Windows" option in my "Develop" window. Can you give further instruction on where it's found?
[link]
From: Tony Fisk (Sep 19 2011, at 21:41)
*Not* knowing what 'AFYD' meant, I went and ogled it, to be told it stood for 'Angling For Youth Development'.
No doubt TLA is thought, by some, to refer to 'Terminally Liberated Androids'
[link]
From: BruceLeeXIV (Sep 20 2011, at 00:09)
Quote from John--If you enable the Debug menu on Safari, you can then uncheck the "Use Multi-process Windows" option, which goes back to the old WebProcess-less behaviour.
The only thing that I've noticed different, besides the better performance, is that the pinch-to-zoom gestures go back to the old method.--
Yes! Thanks John, the new text zooming has been a pain in my arse. I can pinch-zoom again and the page stays centered, the text gets bigger in predictable increments. finally!
[link]
From: yellaflow (Sep 20 2011, at 06:49)
Safari is slower for me too, but I'm sticking with it as my main browser until the others come up with their own Activity Window.
[link]
From: Paul Foster (Sep 20 2011, at 08:20)
From Apple.com (footnotes, my own)
"Advanced Page Caching*
Safari stores the webpages you visit in the cache**, which can speed up access to pages you’ve already viewed. Safari can add additional types of webpages to the cache, so that they load fast when you return to them."
* 8GB RAM recommended for optimal performance.
** The 'cache' is stored in the Random Access Memory (RAM) on your computer, and since our range of Macbook Airs and MacBook Pro's ship with either 2 or 4MB as standard, you'll need to buy and install more RAM as soon as you get your laptop out of it's box. Safari keeps hold of as much RAM as it can get all the time it is running, and the more tabs you keep open the less likely you'll be able to get on with the other important stuff you need to do, since you won't have enough available RAM to do it with. If you are running other apps like those in our iLife and iWork range, as well as many other apps available in the App Store, or indeed our more professional applications - Yes we're fully aware we cocked up Final Cut, thank you - you are likely to find that Safari does slow things down bit, and when it fails in it's attempt to grab more RAM as you attempt to load up your ex's album of wedding photos on Facebook to see if she has put on more weight, it will crash, and you may need to restart your computer. This was purely an oversight on our part, since all our developers have plenty of RAM installed in their computers, and nobody thought to test this new feature on our range of standard specification products. However, what with all the recent boardroom changes and the like, please note, since it is taking us rather a long time to realise the amount of hassle this oversight is causing our ever-growing customer base, it is our duty to point out that other browsers are available. In fact many diehard Safari fans are indeed switching over to Chrome in an effort to regain control of their RAM.
[link]
From: John (Sep 20 2011, at 09:42)
@Ron: "I'm not seeing "Use Multi-process Windows" option in my "Develop" window. Can you give further instruction on where it's found?"
Yeah, it's not under the Develop menu. Some tool or another that I was trying out had an "Enable debug menu" in safari option, which adds in a debug menu with all sorts of arcane options.
Above, I posted the command line that I think should disable the multi-process windows. I think (but don't know for sure) that you can enable the debug menu by the two following command lines:
defaults write com.apple.safari IncludeDebugMenu 1
defaults write com.apple.safari IncludeInternalDebugMenu 1
[link]
From: Matt Kulka (Sep 20 2011, at 16:30)
Yep. Ditto here. Loyal Safari user since 1.0. Recently I started using Chrome at work. I couldn't make it through a full day without Safari either stalling, loading blank pages or in general behaving poorly.
I plead with Apple to fix the memory issues that plague 5.1. If this is the cost of separating rendering into distinct processes, it's NOT worth it.
[link]
From: Jim Leff (Sep 21 2011, at 12:16)
John, can I presume that this would be reversed by swapping in a "0" for the "1"?
Also, has anyone out there tried this direct command line approach (i.e. not via the mysterious debug menu pref) successfully?
-------------------
From: John (Sep 19 2011, at 13:27)
The command line would be:
defaults write com.apple.Safari DebugNewWindowsUseSingleProcessWebKit 1
[link]