Google’s Chrome is the best web browser for my needs. Apple’s MacBooks are the best computers for my needs. So why is the combination of the two such a wretched and chronically compromised situation? Almost every advice column on how to improve MacBook battery life begins with the suggestion to avoid using Chrome in favor of Apple’s more efficient Safari browser. The idea that Chrome is a big and profligate battery drain on MacBooks has existed almost as long as the browser has been available, and most benchmarks reiterate it by showing Chrome’s gluttonous consumption of system resources for seemingly basic tasks.
Does the same apply to Chrome for Windows or Linux? I don’t have a laptop, so I have no way of testing it out.
I use chrome on Ubuntu and its not as bad as on OSX, but its still not good. It would usually cut my 5 hoyr battery down to 3.5 hours. The problem is at least on OSX I like Safari so it isn’t a big deal. On Linux, I don’t like FireFox personally so I’m stuck with chrome even if it makes battery life worse.
Both Chrome and Safari now share this same freaking idiotic multi-process model where each page has an complete process rending it. This multi-process models is the biggest waster of memory I’ve ever seen, I mean, seriously, 100 MB for a freaking web page??????
I used to prefer Safari over chrome because it was a single-process browser and consumed about 1/10 of the memory, but now Safari is a giant bloated pig just like Chrome.
Anyway, the only real difference between Safari and Chrome is Safari syncs MUCH MUCH better with Safari on Apple devices, like IPhone, IPad. Thats why I use Safari. So, other than syncing with Android and Windows, I don’t see any advantage for Chrome.
However, Chrome lets you sync with Android, Windows, etc.
I would so instantly ditch both of them in favor of Firefox (which is at least for the moment single process) if Firefox just ran on my iPad.
I’ve had 100s of times more problems with this multi-process browsers than I’ve ever had with single-process ones. Sure, every once in a while, a web page might hand old safari or firefox, I’d restart it, no freaking big deal. But this multi-process garbage is always using CPU cycles to sync state between the frame and the renderers, its takes minutes to sleep your computer with lots of pages open, I freaking dispose these multi-process browsers. I’ve got a 4 GB machine, and 90% of the ram is consumed by freaking web pages, this is a joke.
Edited 2015-04-10 17:19 UTC
Multiple processes with shared pages do not work that way.
I think, sometimes, people forget the amount of crap we, the developers, put on web pages and all that is needed to support that crap. All kind of animations, js (complete with, oh gosh, libraries), css, high-res images (that usually need to be scaled down), svgs and whatnots. All these stuff need to be parsed, cached and rendered. Of course, it gobbles tons of memories. Sometimes it is an imposition, sometimes it is our fault but mostly it is convenience, we trade small for pretty/adaptable/fast-to-deploy. It has been happening for years on all kind of software deployment.
And don’t forget that everything must not be trusted thus we need a security layer too.
Anyway, memories (all kind, or almost) are cheap and plentiful now and, most of the times, when someone complain, it is a presage that a new device will be acquired or a new access plan will be in place soon.
Only we, that work or like this kind of technology particularly, “waste” time trying to use old stuff with current software or web content.
Multi-process has nothing to do with it, as you pointed. It save us from the old “stall” on all tabs because one has entered a particular bad or intensive task.
Memory might be cheap, but when its wasted, it wastes time and money. I’ve got an 8 Gb laptop, and I usually have 20-40 pages open (I read a lot of docs/papers), and with this many open, it takes sometimes 5 minutes for the laptop to go into sleep mode before the fans stop spinning, This is just insane. Before with the single or dual process Safari, it never did this, Firefox doesn’t do this, just these multi-process memory pigs like new safari and chrome.
If a page crashes with a single process browser, big deal, I just re-launce the browser, but these multi-process browsers use so much memory, and do so much chatter between processes that they frequently almost crash the whole system.
Theres just no excuse to consume 100 Mb for a page as simple as osnews, its not the website’s problem (again, osnews is a fairly simple site), its the stupidity of the browser developers.
I think I’ve had the entire browser crash maybe 20 times in the past 10 YEARS using a single process browser, I can live with that, no problem. But what I can’t live with is the browser consuming nearly 8 Gb of ram, my machine coming to a crawl because all the memory is wasted in browser process and not being able to do my work as a result.
Memory is wasted when it remains unused
I think it has something to do with 64bits vs 32bits you know 8 bytes pointers instead of 4 bytes. Also each thread (process) need a new pointer, and other variables for syncing/locking, etc.
So I think in a way, yes more threads mean more pointers allocated, also if the thread is memory bound then it will need a lot of RAM resources.
Now, Imagine that you have 1 picture of 100Kb of size, that picture will use 100Kb plus the extra memory needed for its pointers and coordinates in screen. If the browser download the image and compress it too. then just allocate in ram the portion needed so it would consume processor (energy hungry), it will not be faster, nor it would be more power efficient, it will only be more memory efficient.
Webpages have so many elements that need to be dynamic (it is not just a raster it also contains position, length, width, etc). Those values usually are pointers.
Imagine your webpage, you have a static image rendered, text rendered over it, etc. But it suddenly moves from one side or another for an animation, well that needs independent coordinates and size, they are not only pixels, they have information about those pixels, they are full of metadata.
You also have session information that you want to persist, you have webpages pre-loading stuff before is needed (so when you need it, it is already loaded) instead of lazy loading.
If you have more RAM, use it and the system will be faster.
I think that more processes = more RAM, more elements = more RAM, bigger screen sizes = more RAM, 64 bits pointers = more RAM.
Edited 2015-04-11 01:50 UTC
Threads are cheap, all run in the same address space, not much more than a stack frame and a tiny bit extra bits.
Processes are the pig, extremely expensive, needs to set up a whole new address space, then add to that all the plumbing needed to send data back and forth between processes. Processes can’t share memory, need to copy everything back and forth.
There’s usually little difference in mem usage between 32 and 64 bit progs, I compile them both ways and measure the diff (I code molecular dynamics and fluids simulators)
Memory is wasted when it’s all consumed displaying freaking web pages in freaking separate proceses, and not available so that I can do my work.
I’m not super happy with how much memory eclipse+cdt uses, but I live with it because eclipse DOES A LOT. It just pisses me off how wast full browsers are just showing freaking web pages. With a number of browser open, I can’t even run eclipse and virtual box at the same time which is what I need to do my work.
Edited 2015-04-11 06:48 UTC
it’s never unused in modern OSes (caching etc.)
Sleep mode should be instant, maybe you meant hibernate? Or hybrid sleep which effectively run the hibernation routine before going to sleep to be able to rescue the system if sleep is disrupted?
I’m always running ~200 tabs on a 8GB laptop. Granted it’s firefox so we’re talking 3GB total, but hibernation and hybrid sleep are ~30 seconds with a SSD. If sleep time is your main issue with Chrome then you might want to consider a SSD. I’m not saying Chrome’s memory usage is acceptable, it’s not and that’s why I can’t use it personally; But it’s not going to change any time soon, if at all, so if you like it and a $150 fix exists it’s worth considering!
Edited 2015-04-13 12:59 UTC
Do any of the browsers like iCab Mobile still support Firefox Sync like they used to? Sure it’s not Firefox but it might at least give you the sync you are wishing for, assuming these browsers have been updated to support the newer version of Firefox Sync in V29 and later.
Chrome occasionally eats the battery on my Surface Pro 2 when left unattended. Seems peculiar to certain websites keeping it awake when it ought to be sleeping.
When I used it on Android it killed my battery. I use Firefox and dolphin now so I’m not sure if it still does, but I wouldn’t be surprised.
Like others I find the RAM consumed by browsers just a bit over much.
The question is where one goes for light relief: the lightweights (e.g. Dillo) don’t cut the mustard and the heavyweights are just, well, heavy because often they use the same engines for JS etc.
Currently I am starting to play with Vivaldi (similar heritage to Opera) and it seems fine but otherwise I wander between Safari & Firefox.
Under Apple’s laboratory controlled conditions, Safari is more efficient. Sure.
But in the real world, people have a few dozen tabs open, and Safari is a HUGE memory pig. Use Safari for a while, and before long, it’s eaten up all your memory, and the system starts swapping like mad, which sucks down battery faster than Chrome could.
If Firefox interoperated better with MacOS X, I’d use it instead. Years ago, I abandoned it because of too many deal-breaker bugs. (It STILL will keep a Mac notebook from going to sleep properly because it does I/O too often.) But if you’re staring fresh, consider Firefox, because it’s been carefully designed to minimize memory consumption. Unlike Safari and Chrome.
Edited 2015-04-10 18:59 UTC
Right, but nobody was actually saying Safari did not consume a lot of memory, this whole article is about _power_ efficiency
Firefox might be better memory-wise, performance-wise, whatever-wise, but it is definitely not as _power_ efficient as Safari is on OSX.
It’s not a case of flash not being supported longer on Safari for instance whereas it’s around in Chrome?
(Not saying it’s not. I don’t know.)
It does not look like it, as I don’t have flash installed/active on Chrome either and it still sucks.
I’m pretty sure Apple is much more focused on optimizing for power consumption then most, since they have to sell not just the software, but the hardware too 😉
Flash is still available for Safari on Mac. I run Flash still in Safari on Mac. No, Flash is not the battery drain culprit for Chrome for Mac — or rather, Apple (and/or Adobe) can get Safari to run Flash without appreciably draining the battery.
I have been using Dell laptops at work for more than 6 years and switching between Firefox / IE / Chrome / Opera over the months.
I found Chrome to actually drain battery and cut the life of the laptop by a great margin: I would often easily lose one hour of battery life when Chrome remained open.
Once my attention was drawn to a blog post explaining that one of the reasons why Chrome was draining battery life was because it was requesting a faster clock update from the OS. There was an issue opened for that in their bug tracking system but it seems they didn’t really care about it. I had taken some of the steps indicated by the article that allow to fire some Windows utilities to analyze power consumption and I could observe that it was true Chrome was fiddling with the clock, regardless of what pages and how many pages were open.
Since IE11 came out I have made IE my main browser on the laptop again, and the power consumption was part of the reason. I can now take my new laptop with SSD and i7 as far as 7 hours battery life… wooo hooo
IE 11 is nice, quick, fast, looks like it belongs.
The way I figure, both Microsoft and Apple have some pretty smart people working there. They designed and built the OS, and I would expect them to build the best browser for their OSs
This bug is interesting:
https://code.google.com/p/chromium/issues/detail?id=310374
It’s about using API in MacOS X which tells you whether view/window is visible on the screen. Could this make the gap in battery life between Chrome and Safari less drastic once it’s released?
How about this bug?
https://code.google.com/p/chromium/issues/detail?id=52663
Yeah, Chrome kind of sucks on Fedora in my configuration. I saved the laptop from the dumpster, Pentium dual processor, 6 GB memory. Chrome is just too much for it at times, completely locking up when it encounters too much js/DOM stuff happening on pages. I’m sure it would have an effect on battery life, if the battery lasted for more than 20 minutes idling on the desktop.
I actually use webkit based Konqueror at times to avoid the slowdown in Chorme.
Chrome os actually fine on my slightly older, but high end when it was released Desktop ( quad core, 4 GB) .
Yep, this behavior is present on Linux too. It’s not a huge deal for me since I prefer Firefox, or if I need WebKit a lighter weight browser like Epiphany or Qutebrowser (https://github.com/The-Compiler/qutebrowser).
It’s the same on Linux and Windows.
Just run a 4K video on youtube on both Chrome and IE and see how Chrome uses twice the RAM and 15% more CPU power than IE does.
The problem is that Chrome is no longer a browser. It does so many things besides this.
Google developers use Mac laptops.
So they seem to be happy with their battery usage.
Most developers work at desks. In which case it’s a simple matter to keep your laptop charger connected.
Also, for most develpment work, the dev tools tend to be the power hogs.
It’s nice to be able to take your laptop into meetings like code review, design, etc, and not worry about finding power plugs.
Sometimes meetings chain together leading to four hours or so without power. It is great when laptops can do this without a problem.
Or sometimes a meeting finishes and we just stay there, too lazy to leave, working together on whatever instead of going back to our desks.
For software development, dev tools are not power hogs. Ours aren’t anyway. It’s just a glorified text editor, and since we started using Go the compile time and power use is very small. C# compile is fast too. C++ compile and link can take up to 30 seconds, so that’s expensive. I guess it depends on what you consider “most developers.”
High power use does show up while testing. Running virtual clusters of three to six machines eats up the power. But you can wait until you’re back at your desk to run integration tests.
Dev tools are really not power hogs, nowhere near as bad as browsers like chrome or safari.
I use eclipse cdt and Xcode and emacs for development (c++, assembler and some Python). Eclipse is a memory hog, but nowhere near as bad as browsers. Plus, at least eclipse is doing something useful, like parsing c++, extracting parse trees, building class trees, complex stuff, so, I’ll tollerate it being a memory pig. But a freaking web browser, all it has to do is display some HTML, it’s not a big deal, no excuse for them being such resource pigs
Not sure if it’s a battery hog on Ubuntu, but it’s the nearest thing to a decent browser on that platform now that Flash is only being maintained on Chrome. And it keeps causing the whole GUI to crash, once last week requiring a hard reboot. Now that the OS X wifi bug has been fixed, I’ll be using Ubuntu a lot less anyway.
I use the major browsers in the main three operating systems, and at least in windows and Mac, chrome uses more power because it taps into the gpu for all kinds of things. In Linux it is hard to quantify due to well… The battery lasting less on the same MacBook Pro but as long as I stay away from flash websites it seems about the same.
To their defense, chrome is the fastest browser overall on windows and OS X, even if they accomplished this by keeping it running on the background.
Personally, I’ve always favoured Firefox over Chrome because it is more customisable and has better extensions. It used to be that Firefox was slower than Chrome and used more RAM, but in the last couple of years, Firefox has caught up in performance and actually uses less RAM than Chrome now.
There’s still the odd page that someone creates and tests only in Chrome – check out http://tcec.chessdom.com/live.php for example – that doesn’t work well in Firefox, so I do use Chrome as a secondary standby browser.
On Android, Firefox rules supreme because – somewhat shockingly – Android Chrome has no extensions at all, making it a distant poor cousin to Android Firefox.
I can confirm that chrome is a processor hog. But I assume that is because modern WEBSITES are processor hogs
I wonder if Chrome’s link pre-fetching might be the cause? Find it under advanced settings. Shows up as “predict network actions to improve page load performance.”
I use Chrome all day as a web developer and I really don’t think it has a significant impact on my battery. My Macbook Air consistently gets 7+ hours of steady usage with Chrome open the entire time.