Wow. My normal session now leaves me with around 8gb free out of 16, compared to 1-2gb free previously. Gmail is using less than 1GB again. I might even disable The Great Suspender, and stop killing tabs that use up lots of memory.
Whoever worked on this, you deserve a raise. QOL improvements for so many people.
For me the situation is perhaps not quite as clear cut. On the one hand I'm seeing nice improvements in the large memory hogging tabs. For example a typical reddit thread was reduced from 399 MB down to 295 MB.
On the other hand, it appears all extensions now have a >50MB memory usage floor. For example, the Authy extension was using 5MB under Chrome 54. It's now using 55MB on Chrome 55. Similarly the simple archive.is button extension went from 5MB to 55MB. That's a lot of RAM for spartan functionality.
For the record, I'm using the chrome://system/ page to compare before and after.
That said, it may be possible the additional memory usage for extensions may be a reporting change as opposed to an actual memory increase. Unsure either way.
Actually, we decided to delay --isolate-extensions to M56 to get a few more features working for out-of-process iframes first. It's still on for 50% of beta users, but no Chrome Stable users yet. I'll send a clarification to that earlier PSA, but that means that it wouldn't explain an increase in extension memory usage on Chrome Stable.
For those who use OneTab I can highly recommend setting a keyboard shortcut for 1) seeing your OneTab list (although that can also be a bookmark), and more importantly, 2) sending the current tab to OneTab.
I had to rediscover how to do this, or OneTab changed in its behavior. You have to go to your extensions screen (Chrome), scroll way to the bottom, and set your shortcuts for extensions there.
Just FYI, as setting extension shortcuts in general wasn't intuitive to me.
Last time I restarted Firefox, I had over 350 tabs open. Which is ridiculous, of course, because I'm sure that I haven't looked at more than 100 of them today, but since that all fits into 1.2GB of memory (currently), what's the problem.
(To add to the description, from their github readme)
> "The Great Suspender" is a free and open-source Google Chrome extension for people who find that chrome is consuming too much system resource or suffer from frequent chrome crashing. Once installed and enabled, this extension will automatically suspend tabs that have not been used for a while, freeing up memory and cpu that the tab was consuming.
Chrome's session restore silently loses tabs when you have a lot open. It is completely unreliable in my experience. Sometimes a window will come back with half the tabs missing, which is obvious, but when it's only a couple missing, it's much harder to even know.
Also, Session Buddy lets you export sessions to back them up and move them between computers, etc.
I've been using the cross-platform, open-source WMail [1] for a couple of weeks, and I find that it offers a faster and more streamlined experience than using Inbox in Chrome.
Chrome can't even begin to compare to Firefox when it comes to handling anything >10 tabs, which is I think what 99% of people max out at, so Chrome doesn't bother about the rest even though people have been begging for years.
- no multiple tab rows
- when you launch, it reloads every single tab vs loading only the active one (the only sane option), causing massive slowdown and network traffic
- as a result in Firefox you can have 100's of tabs, open the browser, work in a few and close, without affecting anything.
- Firefox had Tab groups, an awesome visual representation, before they made it optional due to everyone copying Chrome's limited feature set.
- Chrome still uses much more memory
- Firefox extensions are by design much more powerful. e.g. Session Manager. And things like Tree style tabs etc.
Firefox easily handles upwards of 50 tabs while Chrome keeps crashing most of the times for me and takes up a lot of load time.
FF extensions are really great compared to Chrome (apart from some Chorome Apps). My only remaining gripe with Firefox is the tab spinning problem (it seems to improve after every new build. I'm on nightly.).
I have recently been running FF in parallel with Chrome. If I'm using non-Google properties, that don't use bad extensions, I quite like using FF. It's not quite as stable, but it "feels" faster and lighter.
Great news! A simple weather website, with about 1 MB worth of actual content (text, markup, images, layout) now only uses 250 MB of memory. And it only takes a few seconds to load on a 100Mbps+ connection whenever I click a menu item (that's with all ads and tracking blocked and most of the stuff already cached).
I'm sorry, I just don't see any reason to celebrate.
Come on man, you don't want to be that guy at HN that rains on everyone's parade. A 30% decrease in RAM usage for an app as complex as Chrome is really something to be celebrated.
He has a point. For me, most of my 'web' experience isn't doing anything I don't remember doing in 1995. The things websites are doing I usually don't want them to do.
I just want to see text, images, and video with light formatting and hyperlinks. This _doesn't_ require hundreds of megabytes of memory. It would involve restricting what the new web could do and those restrictions would make things better. We don't need the kitchen sink in every page.
Did he? The original comment said "It would involve restricting what the new web could do and those restrictions would make things better. We don't need the kitchen sink in every page." which sounds exactly what AMP is doing.
Meh, I mean, it's in the neighborhood but philosophically unsatisfying.
I want to cut the fat, not add another layer of it on top.
Something like writing a simpler feature-clone (not how it does things but copies the big picture things it does) of postscript with hyperlinks and videos.
To qualify as one in my book you have to be a serious problem: one came to give me a beating at work and the only way I got away was to find a corner and a weapon until he got distracted.
Another one made life at work so frustrating for two years that I left one of my best jobs ever just to never have to deal with that guy alone.
Unless someone here is stalking you, messing up you life etc then try something like this instead: there are a lot of people on HN who disagrees with me in ways I didn't expect.
Exactly this. Even though it is not quite 1MB, but more like 5-10MB including all the images.
But requiring 250MB of memory, AND some doesn't even load 60fps smooth on latest machines. At times i wonder if there is something fundamentally wrong with the Web Stack.
Fun fact, even though it's downloaded as compressed format, the windows drawing api bitblt requires bmp format, so it's probably saved in memory as bmp. A 1024x768x24bpp bmp is multiple megabytes, even though the jpeg is 100kb.
Not just the Windows drawing API, but essentially any drawing API requires that images be decompressed. Some sprite sheets are particularly egregious. I've seen sprite sheets with dozens of 32x32 sprites stacked above each other, and a single wide (let's say 1024x32) sprite at the bottom. This can give you a sprite sheet which is 1024x2048, decompressing to 8 MB, with literally 97% of the data being blank pixels. Fixing this on the browser side is very hard - it's a content problem.
The solution is to lay out sprite sheets to minimize blank space. Rearranging the sprites can easily get the number of blank pixels down to ~5-10%, thus saving ~7 MB, in essentially all browsers.
YEs, but images 2,336 x 3,504 = 8,185,344 pixels @ 24bit color roughly equals to 24MB. That is lots of images even if you are on native resolution retina display. And doubling that gives you 48MB only. ( And someone has pointed out they are compressed differently within memory, so likely only consuming 1/2 to 1/3 memory size )
That leaves with 200MB memory gods knows what they are.
I think that web stack has its problems, but generally problem is developers (or their managers) who don't care about performance. It's possible to create awesome and performant websites with current web stack.
Console yourself by remembering that the vast majority of people creating these websites don't have computer science degreees. They learned their "trade" over a few weekends. Their "profession" is the equivalent of self-taught backyard abortionists.
They mentioned that weather.com crashed their website. Their website is always extremely slow for me as well. It's ridiculous how poorly designed their website can be for such a simple service.
TO THE DEVELOPER, FWIW: I'm also in California and it thinks I'm in the Philippines in a town with the same name as one a few miles from here. I assume you use IP to find town, country; throw away country; look up town in a list with country names in alphabetical order (Philippines < United States)
Note that even if you get the country right it won't be enough, because there is a "Springfield" in each of the 50 states. You'll have to get keep all of the location info you get from the IP lookup, not throw part of it away and attempt to recover it.
Yes, and here's another d'oh: I learned long ago, years before The Simpson's show existed, that there was a Springfield in every state. The show's creators may have heard the same urban legend back in those days before we had that oracle called Google. But, for the first time in all these years, I just went off to check out this claim for myself, and I'm wrong. There is no Springfield, Utah, or Alaska, or North Carolina, for example, and I find no evidence there ever was one in Utah (I didn't check the others), so it's not something that WAS true when I was a kid but no longer is. I don't think it was ever true.
D'oh! (All these years.... How many other things do I "know" that aren't true...?)
Turns out that when I'm in the US, I can't use my credit card to order takeaway food online, because they universally require zip code validation, and neither the postcode for my Swiss credit card (8047) or my UK credit card (IV548JS) (both codes modified to protect the guilty) pass the very simple minded zip code validation.
Just to be a pedant, that's not what was stated: "As a workaround, you can use your zip code instead.".
Your assumption is that zip code == "U.S zip code" which is a fair assumption if the site only supports the U.S. Other comments on the thread shows the site does support locations outside of the U.S. It is therefore also a fair assumption that it _might_ support similar functionality outside the U.S., kuschku simply tested said assumption and stated that it was incorrect so that other readers were aware.
I can confirm that it does correctly give me Minneapolis, MN, not Minneapolis, KS, which is what the MacOS Dashboard weather widget would display around 10.5 or so if you entered "Minneapolis".
As mentioned above, you can explicitly specify cities and locations in multiple ways. Chances are, it uses the GMap api (or similar), so you can input pretty much anything resembling a location description. Not sure there is something to fix :)
Note you can click the controls at the top right of the graph and add/remove elements. The graph is a bit heavy, but that may be necessary to generate the visualization.
Technically it's owned by The Weather Company which in turn is owned by IBM. The TV channel is now a separate entity. I still find their forecasts to be more reliable and the user weather station data is great
Drupal can be a real PITA to properly set up with caching. If you're running anything above 10 req/s your server is going to melt without. Oh, and it's always worth a try to swap the default search for Elasticsearch, Solr or any other external engine.
That AngularJS is a slow piece of ... is another part. I coded up a simple Twitter client using Cordova with Angular, scrapped and rebuilt it in jQuery with Cordova (was a test if one can actually build a backendless Twitter app). Such speed, many awesome.
I guess many of the "hipster" JS devs use the latest, max-spec macbook/iphone only and totally ignore the rest of ordinary PCs/average Android phone, or they wouldn't dare to touch Angular and friends even with a pole.
awesome news then, chrome really needs to improve memory usage, especially when I have lots of tabs open.
under firefox I normally had 120 tabs open all the time, and it's fine. with chrome, I dare not to exceed 60 tabs. chrome triggers heavy swap all the time still, which renders the system very sluggish.
My laptop has no ssd. This sluggishness brings back memories of linux trashing the swap partition when it ran out of memory back in the early 2000s. Quite understandable since back then most people don't have that much RAM (64Mb?). Nowadays I have 8Gb on my laptop and I run linux with swap disabled. The only disk trashing that I'm having nowadays is due to chrome, and it's definitely not due to swap but the effect is almost the same - at best the laptop is unusable for up to 30 seconds, at worst, I have to do a hard reboot because that's the only way to recover - I can't even switch to a new terminal to kill chrome. Attempts to log in via the tty console (Ctrl+Alt+F2) in order to kill chrome is futile. I could enter the username, but the password prompt took forever to appear. Most of the time it expires after 60 seconds. If I manage to enter the password, the shell prompt can take forever to appear.
Nowadays I do a "killall chrome; sleep 2; killall chrome" whenever it starts to trash the disk and giving me the bad vibe.
This is mainly because Chrome allocates a process for each page whereas FF only allocates a thread. The important factor being that threads share an address space where processes are allocated their own and thus consume more memory. Separate processes are arguably more secure and of one process crashes it does not take down the whole browser but all this comes at a cost. This cost is very apparent with many tabs open.
The primary security gain of sandboxing is about making it harder for web content to hijack your computer by exploiting security bugs. Many common types of bugs can be exploited to get remote code execution in browsers because of unsafe programming languages used (C/C++).
Both Chrome and Firefox have multi-process sandboxes now, Firefox is a little behind and plans to enable multiple content processes next year.
While Chrome's is more granular, it does share processes between web pages from the same domain so won't start a new one for quite every tab.
They're shared among site instances, not the same domain. It has to do with web standard semantics. Google has been working on https://www.chromium.org/developers/design-documents/site-is... for quite some time which will probably ship in 2017. That's the next step beyond the --process-per-site-instance after --isolate-extensions.
Firefox is more than just a little bit behind when it comes to sandboxing though... there's a LOT more to sandboxing than splitting up processes. That doesn't result in any meaningful isolation without a lot of further work, and improving sandboxing is a major undertaking that Chrome has been working on for years.
But the OS is committing to supplying memory for any writable pages you duplicated, because after all you might write to them. The OS doesn't know which pages you won't duplicate.
Unless you set your vm.overcommit_memory sysctl variable to 1 (= never refuse malloc), duplicated writable pages are going to subtract from available memory, even if all copies are currently the same.
I made a simple firefox/chrome extension for people that horde tabs as temp bookmarks. You might find it useful to find tabs and quickly navigate to them by clicking on the link in the list. It's free and open source. The github page has a gif showing usage. You can also type cmd-shift-e or ctrl-shift-e to switch to it.
In Chrome you can press "Ctrl/Cmd + Shift + D" and bookmark all open tabs into a folder. Then you can right click on the folder later to open all those tabs.
I too keep a lot of tabs open. I use OneTab and The Great Suspender chrome extensions to also keep memory usage under control. They've been indispensable tools for the tab hoarders like me.
Sometimes I open 100 or so tabs to do repetitive stuff I cannot code, data entry work that won't be easily automated or needs the human touch, e.g. updating a product catalogue. On top of the 10-50 tabs open that gets to be a lot of heavy pages but makes for an efficient workflow. With hot keys and 'close all tabs to the right' I can quickly get through a lot of stuff that needs attention to detail and focus to get done.
All I am saying is that there are situations when a lot of tabs is the best option given the circumstances, e.g. lots of data entry work.
No, they aren't. I don't know about you, but I can't have more than 20 tabs open and consciously be aware of the content. I can't think of people like above, having 120 tabs. It's probably a waste of time and resources. First because you can't possibly hold in your memory 120 tabs, thus you'll have to visit them or read the title to remind you why is it there on the first place. With bookmarks at least you can use the search bar...
Naw, at least with me I seem to be able to by treating the tab ordering as a conceptual discovery ordering. That is, I remember what things I learned / researched prior to and following each tab. It's lossy, but because each has a unique relationship with its surrounding concepts there's plenty of opportunities for parity-like behaviour; redundancy.
When researching a thing I'll open up some high level page about it, then do breadth-first searches of tab contents, opening up new tabs whenever I see something that looks interesting, has wider implications, or possibly has some weaker relationship to a thing with one or both of those properties and I think I might be able to traverse the concept graph this way to find it / them.
So I end up with a sort of flat tree where it corresponds almost directly to my earlier thought graph which produced them. I can work with maybe 200 this way... But not more. Unless I open them in different windows - sometimes different browsers, actually, to help further differentiate/compartmentalise them (eg. I'll use this strategy for largely disparate topics). Then, well, I'm not sure where I top out, all I can say is I once crashed my box from out of memory (not running swap), and it's a 32GB box soooo... I dunno.
There are likely many others that work this way. Perhaps it's not common, but I also feel that it's very unlikely unique!
For me session manager sessions (in firefox) are the new bookmarks.
i try to split different fields of interest into separate windows. Then i save that window as a suitably titled session and close the window. If i need to add a new tab to a session, i use the "append to session" feature. That way i dont clutter up my bookmarks or my primary firefox session.
I don't know if you're familiar with the ins and outs of writing computer programs, but it's actually often practical to make a program that does one thing do another instead. So in this case one obvious thing that could be done is to have a dormant-type (exact terminology TBC) tab.
Such things would have an entry on the tab bar like a normal tab, but wouldn't actually have anything loaded until you clicked. Firefox already supports this sort of thing internally, it looks like, since when you reload a session that had a bunch of open tabs, it doesn't seem to load each tab's contents until you click on it.
(Open such a thing with a particular shortcut, or by transforming an existing tab into a dormant one - obviously equivalent in terms of JS callbacks and so on to closing the window.)
Other possibilities could include multiple types of tabs, and/or alternative UIs for lists of pages you like/pages you want to look at sometime soon.
On Windows, using the built in notepad, you can block any shutdown by having an instance pen with any unsaved changes. Handy when Windows schedules a reboot and you've got your debugging session setup just right.
We've banned this account for repeatedly violating the guidelines after we've asked you to stop. This account has posted a lot of decent comments, so we'd be very glad to unban it if you email hn@ycombinator.com and we believe you'll stop breaking the guidelines.
Also, if you are not yet using 64-bit Chrome, you really should. It is more stable and avoids internal "out of memory" errors individual tabs can sometimes return. Not the default Chrome for some reason!
I'm curious why this is the case. You'd think if Google wanted 64 bit Chrome to be the default, they'd do it on both platforms even if only for consistency's sake.
It might just be because of the difference in platforms. 32-bit Mac has been gone for half a decade, whereas 32-bit Windows is still out there (32-bit Windows 10 exists), and those wouldn't be able to run 64-bit Chrome, so they may be using 32-bit as the default in order to avoid user confusion.
More specifically about OS X: support for 32-bit hardware was dropped in 2011, but support for 64-bit applications has been available on all 64-bit hardware since 2007, even if you were running the 32-bit OS kernel. Apple handled that transition way better than Microsoft.
To be fair, microsoft's userbase requires backwards compatibility a lot more than apple's does, since Macs are largely consumer systems rather than enterprise ones.
Microsoft got flack for dropping 16bit app support in 64bit OSes (since 64 bit windows doesn't have NTVDM). They'd be flayed alive if they dropped 32bit support.
32 vs 64-bit app support is quite separate from 32 vs 64-bit kernel-space drivers. 32-bit operating systems need 32-bit drivers and 64-bit operating systems need 64-bit drivers. 64-bit operating systems can run 64-bit apps and 32-bit apps.
Crucially, however, 32-bit Mac OS X 10.5 could run 64-bit apps just fine. That, combined with OS X's universal binary support, made it easy to start deploying 64-bit application code far earlier than most Windows apps began transitioning.
Most of Apple's computer models were only available with 32-bit x86 for less than a year, so the installed base that needed their applications to still be 32-bit was minuscule compared to the installed base of 32-bit Windows editions that couldn't run 64-bit apps even if the CPU was 64-bit capable. Most Windows application developers faced bigger challenges in deploying 64-bit code than Mac app developers, and the Windows devs' work would benefit a much smaller fraction of their userbase. Windows app developers don't switch to 64-bit unless they absolutely have to. (e.g. this year's 64-bit re-release of Skyrim, to accommodate the address space requirements of heavy modding. Skyrim was originally released in late 2011 as a 32-bit only game despite listing CPU requirements that couldn't be satisfied by any 32-bit CPU.)
It does help some, but probably the biggest advantage is that they simply didn't have to support x86 machines from before 2006. By that point, ACPI, AHCI, EHCI, OHCI, HDA drivers would get you a working system, except for 3D graphics and networking. That's why Hackintosh systems are viable: basic PC hardware is extremely standardized now compared to what it was in the 1990s.
Apple's hardware platform control helped them cut down on the number of network drivers they needed to implement, and their decision to do the 3D graphics drivers in-house didn't save them much effort but made things a lot more straightforward.
By contrast, Windows 7 officially supports GPUs from 2001 running on systems that could be quite a bit older, from the days when there were half a dozen third-party chipset vendors that couldn't properly implement a spec even when they were trying to make standard interfaces. Windows 10 moves the cutoff forward quite a bit with its NX bit requirement, but still targets a diversity of core system components that simply didn't exist by the time Apple entered the x86 market.
Microsoft and Apple both have to contend with pretty much the same driver challenges for peripherals like printers, although it tends to be easier to put those drivers in userspace where 32-bit vs 64-bit isn't a showstopper.
This is only for low memory devices. From the linked article -
"All the improvements discussed above reduce the Chrome 55 overall memory consumption by up to 35% on low-memory devices compared to Chrome 53. Other device segments will only benefit from the zone memory improvements."
If they didn't, then that would mean development on Electron had stopped. Or that the Electron team needs to remove these features in their fork, and considering how much grief Electron's RAM usage gets, I don't see that happening.
Same thing for me, but only on my 2011 MBP. My girlfriend's 2012 MBP doesn't do it, and neither does my work 2015 MBP. I think it might be related to Chromecast, because that's the only difference between each of those browsers aside from hardware.
Do you have any extensions like that might be causing it?
More exciting news coming in Chrome 56 with complete optimization.. V8 can optimize the entirety of the JavaScript language. Can't wait for Christmas presents
That is welcome change, I already switched to Opera and happy with it, but we really need a lot of choices always and that is why I welcome this change.
Previously Chrome did not take computer DPI settings into account. Now it scales the UI with DPI settings. I found my laptop was at 125% scaling without me knowing.
I got the opposite problem (tabs and address bar were bigger after update), and I fixed it by changing the flag "UI Layout for the browser's top chrome" in chrome://flags from "Touch" to "Normal". Maybe this flag can also fix your problem.
RAM is one of your least power hungry components compared to other parts of your computer, such as what generates heat (CPU/GPU) or produces physical motion (fans or spinning drives).
This makes no sense. RAM generates heat just as CPU does, and RAM also actually does consume a substantial percentage of laptop power. However, said usage isn't related to how much RAM is being used, really; it's a constant usage rate to keep the current RAM state alive.
Well, it makes sense to me: CPU and GPU take in the order of 10 times as much power as RAM. RAM power usage just isn't depending on load, like that of CPU and graphics.
No, if anything the energy impact looks worse than before on OS X. I love Chrome, but the fact that it's almost completely unusable on laptops that aren't plugged in is problematic.
Hard to know. Lower memory usage will generally help battery usage, but it sounds like the garbage collection is more aggressive now, which might offset the savings.
It's not so relevant to the conversation about memory, but is indeed a feature that has been removed.
If you want to have a single key on Linux representing going back again, I would recommend not to overload the backspace, but pick a key you don't need.
On my system F7 I never use, so it's perfect for this purpose.
$> xmodmap -e 'keycode 73 = XF86Back F7 F7 F7'
Or persistent:
$> keycode 73 = XF86Back F7 F7 F7 >> ~/.xmodmap
I hope I save you all a lot of keystrokes in the future!
Nice... but why is it faster/memory is more important to me. I suppose I could look at the changelog but it would have been nice if the post guessed why.
Whoever worked on this, you deserve a raise. QOL improvements for so many people.