Hacker News new | past | comments | ask | show | jobs | submit login
Multiprocess Firefox (developer.mozilla.org)
286 points by ValentineC on May 16, 2015 | hide | past | favorite | 164 comments



From the experience I've had with Chrome, I would say that process per tab is overhead. Sure, there are some benefits from having a few processes that are managing different parts of the system, but not hundreds of processes just for browsing. The way I use Firefox is that having 50 or more tabs open is normal for me, sometimes there are even hundreds of them. Currently Firefox works great and although there are some unresponsiveness during some workflows, they are not so annoying.

I am really worried about this change because I have used Firefox since its version 1.5 and am very familiar with all its problems and successes through the years.


"There are multiple competing factors when it comes to choosing the right number of processes.

- For security, more processes is better; one per tab is probably ideal.

- For crash protection, ditto.

- For responsiveness, one process per CPU core is probably best.

- For memory usage, one process is probably best."

as a dev wrote in the mailing list: https://groups.google.com/forum/#!topic/mozilla.dev.platform...

For various technical reasons Firefox e10 will support a few sub-processes in near future, but nothing is set in stone. Rust based Servo supports (afaik) dozens of processes, as we know it from Chrome and IE.


With crashes, though rare in Chrome, when one does happen it usually kills all my Chrome windows instead of a single tab as is touted :/


It depends which process crashes. Usually and rare a sub-process crash which means a few tabs need a page reload. If your main process crash (which should be very very rare) then I would suspect you have a faulty memory module in your device or you have little free memory or your operating system has not optimal scheduler (e.g. server OS on a desktop).


I've seen it irregularly on multiple machines, Windows 7, Windows 8 and now Mac OS X. It's actually really soured me on the whole idea of a multi-process architecture. I understand the theoretical benefits, but I don't see messages that a particular tab crashed that much more often than that the entire browser crashed.


"Little free memory" means that Chrome has eaten all my ram though.

Chrome is really lagging behind Firefox in this, as it has no backgrounding / unloading process that I'm aware of to maintain a reasonable memory footprint.

It also attempts to render every tab at once when restoring after a crash - another obvious problem.


Let me guess, it's a process like Flash that kills all of your tabs?

That's why having proprietary technology in browsers sucks because you can't really implement it the way you want to (as a browser vendor).


If you can reproduce that, I'm sure the Chrome team would be very, very interested in that.


Or maybe not, I think they have automated crash reporting (I even used their library, breakpad) but my Chrome has been very consistent in crashing on Windows wakeup for over a year now.


This summer I'm going to be working on an implementation of software based fault isolation for my masters degree. We are looking to sandbox a web server without the need to partition via processes and incur expensive interprocess communication and context switching. I don't see why it couldn't work for Firefox either.

Here is the original paper: https://crypto.stanford.edu/cs155/papers/sfi.pdf


> The way I use Firefox is that having 50 or more tabs open is normal for me

I've never understood this. Isn't that what bookmarks are for?


I currently have 2014 tabs in my session (almost all unloaded, using around 2GB of ram that I wouldn't use otherwise). I had 1600 tabs a few days ago. They are links I clicked on in other apps or browsed to over the past few months.

When I get a chance to plow through a few dozen/hundred of these tabs I can read/view them and close them very quickly. Notice all the UI stuff I don't have to do: I never had to perform the the actions of saving a bookmark, opening a list of bookmarks, opening a specific bookmark, or deleting a bookmark.

I clicked a link once upon a time, and I will close the tab some time in the future.

When I switch to and close ten tabs, all I have to do from a UI perspective is type q ten times.


In terms of UI stuff, how do you find a tab among a thousand?

When the tab page title shrinks and all I see is favicon, I feel lost.


You can of course search open tabs from the address bar. But at least my workflow is to browse through the old tabs and read / close one by one.

Also in Firefox the tabs never shrink to just favicon, the tab heads become a scrollable list. Much better than Chrome imo.


I use Tree Style Tab for this, although I hate the actual tree functionality - it just happens to be the only reasonable vertical tab solution I've found. Unfortunately, it seems to get a little bit laggy with more than a couple hundred tabs.


Unless you specifically tweak the UI to enable really small tabs, which is among the first things I do on a fresh install. Favicon + a small number of pixels for padding, way way less than Google allows me to get away with! Slap on a bunch of tab groups and I'm set.

I'm quite comfortable with a tab group filled to the point where the tab bar only displays favicons, but hasn't gotten to the point where it lets me scroll yet. That way I can rely on spatial memory to get to the right tab, without necessarily seeing the title!

Of course, searching for the right tab is an option, just like you said. I love the fact that Firefox also activates the correct tab group automatically.


In all honesty chrome is by far and away the worst at handeling large numbers of tabs of all the browsers (bar perhaps version of IE).


Chrome is pretty special. "Oh, you have too many tabs to fit, time to hide the favicons."


Ironically, Chrome on Android handles this better than Chrome on the desktop. I have 15 tabs open on desktop Chrome right now, and it's getting a bit cramped. My Note 4? 33.


I said tab but I don't actually use the UI concept of a "tab", though I could by M-x tab-bar-mode, because you're right it doesn't scale very well to large numbers, in my experience

I use buffers (in Conkeror). Buffers are just tabs without the actual tab UI. So unless I'm switching buffers, the only visible UI difference between having one buffer and 2000 buffers is the string "[2011/2011]" in my status-line showing my current buffer number and total number of buffers.

I can press C-x b (switch-to-buffer, I bind to M-a) to show a filterable list of my current buffers (favicon, url, title). I can type part of the url or page title (even when tab is unloaded) to filter my buffer list before switching to one. I can also navigate tabs "spatially" (from tab #2 to either tab #1 or #3) or by recently used (bury/unbury-buffer or switch-to-recent-buffer which shows buffer list in most recently used order) or by domain (next-buffer-same-host) or by whether the buffer is playing audio (switch-to-audio-buffer).

Also, in the vast majority of cases I only access recent tabs near the end of the list. I can press 9 or 0 to go to my second-to-last or last buffer.


I don't quite have that many tabs open but I find that grouping tabs into separate browser windows and taking advantage of your window manager goes a long way.


If you are interested in grouping the tabs, have a look at this addon:

https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta...

It allows you to use your tab-list in a hierarchical way, sort of like a filesystem. I group things under obvious roots, and then collapse it till needed.


ctrl-shift-e should open a canvas like area where you can group tabs. Similar to a file folder, I prefer it to bookmarks


Interesting, but seems to be very basic. I still prefer using a wm. I can use different layouts, group windows into hierarchies, display them side by side, take advantage of tiling, use workspaces and have configurable keys for each of these actions. You know, functions that a wm is built for.

And I can always switch to a different wm altogether if I'm not comfortable.


Once you get used to the tab groups they can be very powerful. I use them for contexts myself; one for casual browsing, one for development for client x, one for client y etc, one for research, and the list goes on.

Obviously you can easily achieve the same thing in separate windows as well, so ultimately I suppose it doesn't make a huge difference, but it's the way I find makes for the biggest difference in separating workspaces.


I use the "Tree Style Tab" add-on


The favicon is ok. I close them when there is no space to display the favicon.


Wow, I thought I was in the top "tabbers" with my 300 tabs or so (well, 300 at work and 300 at home), but I see I am far from that !

Nonetheless, that's why I like firefox, I can do that, not so possible with Chrome. So like other said, I really really hope that they take into account this use case.


Why don't you use something like Pocket? It seems like you are the ideal use case for their software. I use it religiously.


I do use pocket. Some of these links will end up in pocket, when I get around to looking at them closer if I decide they are long and I want to read them on my mobile devices.


Sounds like you'd need something like this:

https://www.one-tab.com/

I use it all the time whenever I get to 10-15 "idle" tabs I don't need that day anymore.


I like being able to switch to any of my tabs using the exact same UI technique as I would for any other tab, and press qqqqqqqqqq to view and kill many of tabs in succession.


There's tabvention, automatic 'tab list' backup as bookmark folders if you reach a certain (configurable) number.

https://chrome.google.com/webstore/detail/tabvention/kcjmdpj...


I used to do somethingng similar but I've been using reading lists and a little more self control to manage most of my favs now.


What extension do you use to unload your tabs? Or keep them unloaded, not sure of your workflow in that regard.


I use Session Manager [1] for this. It has a "restore tabs on demand" option. I usually end up restarting the browser every week or two, either due to Windows updates, Firefox updates, or getting enough active tabs that the browser crashes. When it reloads, I only have one loaded tab, and start the cycle over again.

I think the lazy loading on session restore has been built in to Firefox for a while now, but I still use Session Manager. It shows me the number of tabs in the session before I choose to restore it, and if I hit a problematic page that is making the browser immediately crash, I can remove that page from the session before restoring, as well.

[1]: https://addons.mozilla.org/En-us/firefox/addon/session-manag...


I use one called UnloadTab. Works a treat, and does exactly what it says on the box!


So what you want is for bookmarks to be automatically created and accessible from the top menubar.


Yes, that's called "tabs". Especially now that tab content is not autoloaded and autorendered. The bookmark metaphor simply doesn't fit everyone's mental model; tabs work much better.


Wh-whoa . . . I think you just set some sort of a record over there.


How do you find out the number of open tabs?


"Open Tab Count" works nicely for me.


Often you need to preserve some state that is lost when using bookmarks (e.g. scroll position, a confirmation message that will be lost on refresh, a paused game/video etc.)


With bookmarks you have to put additional time for organization and saving them. When I am researching something, I prefer just opening a bunch of tabs and they may stay open for quite a long time. When I am done, I close all of them. The main sites that I use daily, are usually bookmarked, yes.


I have 9 workspaces, two screens each, in a 3x3 grid. Most are browser - terminal pairs. 4 tabs per workspace is fairly common. They're grouped with working checkouts by task. I'm not quite at 50, but getting there. For example:

1. Support Ticket workspace -- one for RT, more tabs for related research

2. internal wiki workspace -- one for the wiki, another for the wiki's github repo, another for a local build of the wiki

3. email / meetings -- one window for calendar+tasks, one for email, with and 1-2 extra tabs for documents or links sent my way

4. Site Reliability -- one for nagios alerts, one for site testing, one for munin, and one for github PRs

5. management -- weekly management meeting agenda google doc, a key report or two, and maybe a slides for a presentation I've been asked to give or review

Edit: IMO, I'm perfectly happy to give up Memory if it means one tab crashing doesn't kill the entire process. Even at 100MB per tab, 5GB is like under 50 bucks.


I run something similar with 4 workspaces. I solved the "browser crashes taking down everything" problem by setting up 4 different profiles in firefox. Create a batch script to fire up firefox in the right profile for the right workspace.

It's worked well for me, when flash inevitably crashes it doesn't take the other workspaces with it, but it's perhaps not the most elegant of solutions.


Bookmarks, tabs, pinned tabs, etc. all sit at different places on the same continuous spectrum of UIs for saving web pages for later. Once you implement unloading of background tabs (which you can in FF via add-ons), they can start to look a lot like bookmarks.


You don't need to use an add-on (anymore?) for keeping them unloaded, although you do need one to get a more manageable user interface. When you have more than about 1000 tabs, startup end closedown get rather slow though.


> although you do need one to get a more manageable user interface I know this get mentioned every time there's a discussion on Firefox UI and extension, but Tree Style Tabs [ https://addons.mozilla.org/en-US/firefox/addon/tree-style-ta... ] is one excellent example of such extension.


I'm trying the builtin Tab Groups feature now.


For Chrome, there is this great extension called "Tabs Outliner". Gets work done really great! Pity that after so much time there is no FF equivalent...


It's called tab hoarding and it's a mental disorder, I have it too.


I'm also a very heavy tab user but I refuse to call it a mental disorder. It is simply an aspect of a workflow among another dime dozen. Web page hoarding may be a disorder though, but in this case it'll be disorder regardless of you're piling them on tabs, bookmarks or Pocket.


It depends on what you do. Doing research requires a lot of resources (tabs) especially if you do it in an non-linear way. Consuming a content requires only on tab.

I open and use dozens of tabs (up to 100, then I bookmark all with one click and close all). But all tabs are active in memory in IE11 or Chrome so I can switch between them (sure I trade GBs of RAM for time, but that's okay). Firefox unloads tabs, so it reloads the page - that's better if you re-open Firefox as it only loads one tab instead of loading all tabs like in Chrome/IE but worse if you have it open and actually work in the browser. So for me it's a trade off, and I find it good I have a choice for different tasks I can choose the best way.


Ever since the dialup era, when all we had was "open in new window", I would browse by reading down a page and opening interesting-looking links in new windows and letting them load while carrying on with the original page.

Tabs are a good LIFO stack of things which are currently "live", or at least not dealt with yet. It's easier to navigate than history or bookmarks. You could argue that at some point tabs should "spill" into bookmarks, but that requires making a decision.


It's like a super convenient temporary bookmark, without any of the hassle of bookmark management.

I currently have 80 tabs open, and process-per-tab is not something I'm looking forward to.


All changes will disrupt someones workflow[1]. I suppose browsers are no exception.

1: https://xkcd.com/1172/


Is Firefox really better than Chrome here, or is it worse because it is enabling bad user behavior?


Bad according to who?


In between e10s, Servo, and the new developer theme in the current Nightly, I feel like Firefox is finally starting to become more competitive to other browsers again. I switched to Chrome because it seemed like Firefox was becoming more and more dated in comparison, both in terms of technology and UI. I still have some gripes with Firefox at the moment, but I'm beginning to seriously consider switching back.

This is obviously anecdotal, but both e10s and the Nightly in general have been remarkably stable during the time I've tested them.


I often have hundreds and Chrome just dies when this happens (not to mention it eats tons of RAM -- they need their own MemShrink project). Firefox continues to work and uses far less RAM for the same set of pages.


The nightly builds have to pass a suite of automated tests before they are published. They're not 100% stable but they're not crashy very often.


The chrome dev tools are way better than in Firefox. It was a reluctant change for me, but my productivity in chrome is way higher.


I had the same experience though I have to admit that some things in Firefox are better these days, like checking where an event comes from, going really deep into objects, referencing other objects, comparing rather big objects.

The only thing I really miss is a view WebSocket frames. In many other cases I ended up preferring Firefox Dev Tools which I think while a bit harder to get into are more powerful.

But that might really relate to what precisely one is doing. I am not a web designer.


The only thing I'm missing in either browser is the ability to ignore jQuery as I'm debugging. Stepping in and out of jQuery (and other libraries like underscore) is a pain.


The Firefox debugger should automatically blackbox minified sources. You can also click on the little eye icon in the debugger panel to manually blackbox sources.

You can also use the developer toolbar to run a command like `dbg blackbox --glob *-min.js` etc. to blackbox a bunch of stuff at once.

https://developer.mozilla.org/en-US/docs/Tools/Debugger/How_...


You can do that in Chrome at least with blackboxing:

https://developer.chrome.com/devtools/docs/blackboxing


I've switched back to Firefox (initially because Chrome kept crashing after 1-2 hours on my machine). Now, I really like it, primarily because I can mess with userChrome.css. But I'm concerned that e10s will reintroduce the instability that caused me to leave Chrome (though I have no real evidence for this).


Please please test battery life impact while implementing the Multi-process stuff.

I had to move away from Chrome just on the battery life issue. I suspect (but cannot conclusively prove) that the multi-process crap that Chrome has just drains your battery much faster. And yes I am perfectly aware of the supposed fix in Chrome for the battery killing bug.


There's no inherent reason why multiprocess would have a significant impact on energy, it just adds a relatively small amount of extra context switching and marshalling to what is already a huge pile of the same (your desktop OS). When the system is idle, or a page is rendered, the difference shouldn't be measurable.


Hypothetically, 50 processes all running separate unsynchronized wakeup timers and event loops could bring the processor out of sleep 50x more often than a single process.


I assume all graphics data is sent from the tab sub-processes to the main process (Chrome and similar in IE9-11). Multiprocess is different in Firefox, to get full multiprocess (per tab) we maybe have to wait a bit longer, for a Servo based browser.

Launching processes is a bit expensive especially on WinNT series (up to Win10), but ultimately it's the way to go ("sandbox" = sub-processes with minimum permissions) - even Servo with its Rust language use it as certain parts like the JavaScript engine are still C/C++ based (come from Firefox/gecko) for the near future and can crash.


If you were on windows and on chrome before 39 (I think), the battery bug was often because chrome forcibly set the system clock tick rate higher than (arguably) necessary. Should be fixed now though at least according to the bug tracker


They made some battery improvements on Windows, but it's still a huge battery hog on Mac.


Safari is multi-process and it has the best battery life.


Safari makes use of a kernel feature that allows giving some leeway for when the process should be woken up again (eg. from a timer source). That way the kernel can put the CPU to sleep until it can schedule as many processes as possible at once to wake up and perform their work. That way the CPU doesn’t have to wake up all the time to wake up a single process and let it do its work.


Windows and Linux should be able to do that, too [1] - any idea if Chrome or Firefox make use of it?

[1]: http://en.wikipedia.org/wiki/Timer_coalescing


It is a bit of a memory hog as well, but yes, it's battery life is just fantastic.


Yea I am with you, I love Chrome and I love that its basically my little mini xplat OS. That of course comes with a price of being a battery hog, if you don't want to use all the benefits Google is cramming into their browser, then I can see the allure of FF. I imagine that represents a fair number of FireFox's users as well. I imagine they won't abandon you friend. :)


Battery life on FireFox is good if you use "lazy tabs" feature. If you need more battery, you just restart the browser and it only loads the tabs you open, so the old ones won't have JS working.


Do you have data on Firefox using less battery? I thought the order for energy usage was Safari < Chrome < Firefox (but can't find anything to back that up either).


Finally some movement on this! It really feels like an inferior experience in 2015 when your browser freezes from an unresponsive javascript in another tab.


Currently, Firefox Nightly uses one process for the browser UI and a separate process for web content. However, one web content process is shared by all tabs. So slow JavaScript in one tab won't block the browser UI, but it will block web content in other tabs.

You can change this by increasing the "dom.ipc.processCount" preference in about:config, but there are still some known bugs with multiple content processes in desktop Firefox. There will be more work on multiple content processes in the future.


Chrome crashes and freezes all the time too.


Not for me, I have barely had any crashes or freezes with Chrom(ium).


Chromium circa 2008?


A browser being built from the ground up around one process per tab has an easier time implementing said feature than one with years of history? Who would've thought‽


The fact that they spent years arguing against its necessity rather than working on it certainly didn't help.


There is a lot of old cruft in its web engine "gecko" (http://en.wikipedia.org/wiki/Gecko_(software) , http://en.wikipedia.org/wiki/XUL , http://en.wikipedia.org/wiki/XPCOM). Many addons are XUL based and have had problems with the multi process mode. In 1-2 years hopefully Servo is ready combined with a simple HTML based UI to do what Firefox/Firebird/Phoenix did with Mozilla Suite: http://en.wikipedia.org/wiki/History_of_Firefox#Naming


And yet if you read the comments in this thread there are still people arguing against its necessity.


Or IE7 circa 2006. IE7 separated its UI and browser content in different processes. IE8+ group several tabs into one process when passing a threshold. This is much better for battery life compare to Chrome process-per-tab.


Chrome also groups multiple tabs on single process, based on a number of factors: https://www.chromium.org/developers/design-documents/process...


IE7 or IE8 introduced multi-process sandbox in Vista (not on XP). Afterwards, Google did the same with their first Chrome release.

In both IE 8-11 and Chrome 1+ there are several tabs per sub-process. Chrome comes even with its own "Taskmanager" where you can see which tab sits in which process and how many resources it takes. You can find the Taskmanager in the Chrome's "Tools" sub-menu.


Yes. Exactly like that. Firefox is damn near a full decade behind the curve.


Multiprocess isn't some magical panacea, its use is essentially to contain buggy code which shouldn't exist in the first place (this is true for its use as introducing extra security context for page content as well as its improvements to robustness against hangs). In both instances, a safer implementation language, or moving rendering and JS interpretation off the UI thread could be said to be far more elegant solutions. Mozilla is about a decade ahead of the curve here, with Rust and Servo providing both.


This. I am a SW tester and regularly use all the major browsers. I frankly do not see any lack in the current non-multiprocess FF in terms of the majority of browsing scenarios. If you really want the browser to be the operating system multi-processing is important, but for those not as interested in Google's agenda it isn't nearly as pertinent.


Really? I switched to FF from Chrome and it's my #1 gripe. I can't load a YouTube video without the entire browser freezing, it's ridiculous.


Are the freezing YouTube videos using Flash or HTML5 video? What OS are you on?


I'm on Linux. I have HTML5 videos enabled, so I think it's mostly that, but I can check later if you want.


(I'm a program manager on Mozilla's video team, so I'm definitely interested in your YouTube problems. :) YouTube playback is common user complaint, but it can be very configuration dependent.)

When you say the browser freezes, is it permanently deadlocked or does the video eventually start playing? Firefox 38 on Linux does not support MSE (Media Source Extensions), so YouTube's HTML5 video player can't use adaptive streaming. YouTube is blocked on Firefox's download and rate estimation of the video. It sounds like the YouTube player or Firefox might be stuck in a busy loop downloading the video.

To test whether the video download is causing the problem, you could try flipping the "media.mediasource.enabled" to about:config pref to true and "media.mediasource.whitelist" about:config pref to false (and restarting Firefox) to see if MSE helps. Alternately, MSE is enabled on Linux in Firefox Nightly (41) and Dev Edition (40) so you could just try them.

Does Flash play without freezing, if you have Flash installed? Flash on Linux supports H.264, but Firefox only supports VP8, VP9, and WebM unless you have gstreamer's H.264 decoder installed (but it has its own problems).


Nope, it starts playing after a bit. I'm afraid I won't be at my desktop, where this is more egregious, for about a week, but I'll investigate and reply again when I'm back. It does sound like the problem is what you describe, although I think I'm running Aurora on the desktop.


Thanks for your help. Feel free to contact me at cpeterson at mozilla dot com if you have more details or questions.


Buggy code shouldn't exist. Buggy code exists. When the buggy code in question isn't written by the browser then it's up to the browser to properly deal with that buggy code. Firefox doesn't. Other browsers do, but Firefox doesn't. Thus as a user I can either use Firefox and have a bad time or not use Firefox and have a good time. The choice is easy.

Maybe Mozilla is planning for the future better than all others. Perhaps in another 10 years Firefox won't be a shitty user experience. I will gladly switch if that becomes the case. I'm not holding my breath.


It's not that it's a full decade behind the curve, it's a decade behind where your perceived curve. There are advantages and disadvantages to both monolithic kernel and microkernel operating systems^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H^H browsers.


New multiprocess mode is a big pain for add-on developers. More details https://developer.mozilla.org/en-US/Add-ons/Working_with_mul...


The problem with e10s (Electrolysis, codename for multiprocess Firefox) is it's actually less concurrent and runs far worse than normal Firefox, at least currently. It's downright unusable.


Switching tabs is just awful. If one page is busy loading something, I want to switch to another tab and see what's there, but instead I get to stare at the word "Connecting..." for several seconds. I just feel like I'm waiting for the browser to catch up all the time.


FYI, you can help submit a performance profile to Mozilla so they can work to resolve this: http://mikeconley.ca/blog/2015/05/04/electrolysis-and-the-bi...


Thanks for the link. It's almost certainly one of my addons that's causing the trouble, but I like my addons!


This is the exact opposite of my experience with current nightly. The browser feels very snappy and I have yet to see memory usage climb above ~350 MB with a multitude of JavaScript heavy tabs open. (Although I don't know if e10s is directly responsible for the latter.)


It may have less performance for various reasons, but it can't be less concurrent by definition. Previously there was no concurrency.


You can have concurrency with only one thread. What you cannot have is parallelism.

More context here: http://stackoverflow.com/questions/1050222/concurrency-vs-pa...


Yes, and I believe that before the layout didn't happen concurrently with other stuff in the browser. It was called on a change and the rest of processing waited. Is that not right?


Interesting -- I figured a multiprocess Firefox would only arrive once Servo was finished. Or are these two projects complementary?


The two projects are independent; work on Electrolysis (multi-process Firefox) actually predates Servo. Old versions of mobile Firefox used Electrolysis, for example. But converting desktop Firefox and supporting its whole add-on ecosystem is a huge project, and was also put on hold for a long time.


They're completely separate projects- Servo is run by different people and is intended more as a research project.

They do overlap in that Firefox is starting to include little bits of Rust for things the the URL parser or image decoders.


Servo isn't aiming at replacing Gecko in Firefox, but it is aiming to be production-ready code. The plan is to make it embeddable like webkit. https://news.ycombinator.com/item?id=9541138


I really hope Mozilla keeps NoScript alive. .. Please help the maker get it ported to support Multiprocess Firefox.


Is NoScript really at risk? That would be a big deal.


Yep, add-ons that connect background logic and "on-site" logic are going to have a lot of issues. Some APIs change from sync to async (which is good anyway). Some others are replaced or removed.


the creator or noscript is working on it and from what i've read mozilla is aware of the issues and doing what they can from their end to make it possible for him to make it compatable: https://bugzilla.mozilla.org/show_bug.cgi?id=1058542


Yea the creator is asking for funding to port. He is just waiting for Mozilla to deliver which they said the were going to do.


For the first time in years, the other day, I left Firefox open overnight. I use a proxy at work for Firefox due to strict filtering on our primary connection. I was monitoring the amtrack debacle in Philadelphia. I came in the next day to an entirely unresponsive Firefox. I had purposely gone to the home page before leaving to avoid bashing the processing with the live stream. Still, after ~12 hours of being on the cnn.com home page - with NO other usage - Firefox had become unusable. Chrome - with its ~20 normal and ~13 incognito tabs were as stable as they were 3 days ago.

I want (and do to an extent) to love Firefox. It was what at one time what expressed to me that there was an alternative to ie. But, I now, in the real world (at least the world I inhabit) can not find it to be better than chrome in any instance. From dev tools to performance. I had no intention of trying to test the differences; I happened to be using ffx for the proxy reason and was saddened to see it had crashed the following day.

Here's to hoping this speaks to progress in this regard.

(Speaking from OS X)


Just remember that anecdote != data and all that. My ff gets restarted in two cases - ff or kernel gets security patch. That sometimes means a month of no restarts. (With maybe 30+ tabs in different groups open)


Same here. I keep sessions open for months at a time, with heavy tab churning (some days I have 30 open, then I close 10, open 20 more, etc).


FF on Windows (work) is rock solid for me, while on Mac (home) it becomes unusable (too slow) after a few days, and also is a memory hog. I do keep 100s of tabs open on both, although most of those are usually not loaded.


Guys please don't do this, I hate chrome,not because it is almost perfect internet browser, just because it is almost an entire OS runs on top of my own OS(I just want a browser not os).I am afraid Firefox will end up where chrome going right now.


At this point pretty much all (modern) browsers except Firefox have this.


How much will process-per-tab increase memory usage?


Back in 2013 the increase from one process to two processes were 10MB.

https://billmccloskey.wordpress.com/2013/12/05/multiprocess-...


This is multiprocess, but not process-per-tab. There is still a single rendering process for all tabs, at least for now.


But the ultimate plan seems to be to have process-per-tab. The article states: "In future iterations, we expect every browser tab to run in its own process."


There's some interesting talk about that in mozilla.dev.platform: https://groups.google.com/forum/#!topic/mozilla.dev.platform...


The multiprocess feature was one of the main reasons, I switched to Chrome in the first place. I think, it is just a good idea to keep the things separated, so one tab can not stop the whole browser.

Today, the browser more and more becomes that, which was called "operating system" some years ago. Many applications today run just from the browser and instead of switching apps, you switch the tabs....

So, it is just a good idea in my opinion to upgrade the security of the browser to a higher level.

I am not sure about the memory consumption, but since Chrome seems to have solved this topic, also Firefox should be able to, and maybe it's also time for me to switch back?


> I am not sure about the memory consumption, but since Chrome seems to have solved this topic, also Firefox should be able to, and maybe it's also time for me to switch back?

The reason I never promoted Chrome/ium to my "main" browser, instead using it sporadically whenever I decided I wanted to look at a page that use Flash is basically because Chrome is extremely RAM and CPU hungry in use cases where the number of user tabs are high (not sure what the tipping point is, but I regularly have more than 100 tabs present in my browser -- granted, not necessarily loaded).

Restoring a session with that many tabs basically disables the computer if using Chrome, necessitating a coffee break while pages load. Electrolysis in Firefox retains the lower RAM and CPU usage of the single process model, and also happens to feel much snappier day to day - I would absolutely recommend that you give the latest nightlies a shot -- or Firefox Aurora, which prompts users to turn it on: https://wiki.mozilla.org/Electrolysis#Schedule


I don't think they've solved it.

I also switched to Chromium a few years ago because it felt way more responsive at the time. Then slowly over time it grew into this beast using over 7GB of memory for my ~50 reasonable tabs (nothing extreme, mostly articles) and it started thrashing my system.

I've just recently switched back to Firefox and opened the exact same tabs: it's using 1.25GB. It feels a little slower at times but well within my requirements of usability. I refuse to waste all my memory for some text in a browser.


I hope this doesn't lead to the overhead seen in Chrome. The overhead is constant and all the time; the browser is far from crashing all the time. I'm honestly very skeptic about the tradeoff here. And with the move to HTML5 and away from binaries ran by a browser engine, I'm unsure about the necessity due to current security issues in modern browsers too. The security nightmares in browsers always seem to have been related to ActiveX, NPAPI, running black boxes in general.

I actually think this was a far better idea (but ironically unthought of) during the days of ActiveX and a much less sensible idea today in 2015.


Six years in the making? Wow...


I've been using Chrome since Paul Irish started working on the Dev Tools. I used to have crashes when i had 120 tabs, but with Flashblock and uBlock i've had none.


This was what motivated me to switch to Chrome several years ago.


Tested it today and the performance improvement seems very significant. Good job Mozilla (wow, I haven't said that in a while...)


Now if I can only fix the wobbly address bar that changes size depending on Back/Forward availability.


Can you please post a bug (with screenshots, list of add-ons installed, and any custom browser css tweaks) to https://bugzilla.mozilla.org/ and CC :callahad in Bugzilla?

Those sorts of fit-and-finish bugs really bother me, and I'd love to figure out how we can fix that one for you.


Thanks for the offer. But I believe that the decision to remove the Forward button when there is no 'Forward' history was a design decision. Unfortunately, it has the unpleasant effect of resizing the address bar as well. So as you click through tabs, or click links, the address bar keeps resiing depending on the state of the history in that tab.

These 'design' decisions are quite silly IMHO. But I will find the original bug report and CC you on it.


https://bugzilla.mozilla.org/show_bug.cgi?id=748291

Here is one of several you get when you search for 'Forward' button


I am testing this , seems okay so far. ps. I also like ,Reader View


Reader view is also available in the Beta channel if you don't want to go as far as running nightlies just to get it. https://www.mozilla.org/en-US/firefox/channel/#beta


Goodbye RAM :) Or better for RAM, since I can now selectively kill and resume processes?

Oh, I see it's not one process per tab. So does anyone know how I can more easily survive on 2GB with many tabs, other than by constantly killing processes?


My strategy is to periodically close Firefox and reopen it, to "hibernate" the tabs I'm not currently using.

Between lazy tab restore and Chrome's process per tab memory overhead, Firefox is currently waaay better than Chrome for those of us coping with RAM Deficit Disorder and O(e^x) tab syndrome; I hope when the Fox gets process-per-tab they don't close that gap.


There's a plugin for that (tm). I use unload tab quiet successfully. The only problems I had were with pdfjs tabs.

https://addons.mozilla.org/en-us/firefox/addon/unloadtab/


Uninstall plug-ins like Flash, and Java or at least set them to block by default. Get µBlock¹ to block unwanted content. Find better sites to visit.

You could also try one of the BarTab extensions² and Tab Groups³ to only keep the sites you use loaded.

1: https://addons.mozilla.org/en-US/firefox/addon/ublock/

2: https://addons.mozilla.org/en-US/firefox/search/?q=bartab

3: https://support.mozilla.org/en-US/kb/tab-groups-organize-tab...


Multiple processes does not necessarily mean increased memory usage. I'm a little surprised at how many misinformed comments there are like this.


The problem is this: Chrome. Which, last time I checked, often ends up with >100MB private working set per tab.

And given the amount of dev time that's gone into Chrome / Chromium, it doesn't exactly set a good precedent.

Also, you're missing that there are a number of things that have to be duplicated in a multiprocess model that you only need one of in a multithreaded model. For instance: the JS heap, which has a reasonable amount of overhead.

Some things can be shared between processes like they can be between threads, but not everything.


As far as I understand it, Firefox already have separate JS heaps since a few years back via the compartments model¹.

1: https://blog.mozilla.org/nnethercote/category/compartments/

Edit:

A quick, 100% scientific™ test:

  Content processes: 50
      Sum: 1858.6
      Max:   42.72
  Average:   37.172

  Content processes: 10
      Sum: 791.96
      Max:  88.96
  Average:  79.196

  Content processes: 5
      Sum: 624.1100000000001
      Max: 137.68
  Average: 124.82200000000003

  Content processes: 1
      Sum: 453.89
      Max: 453.89
  Average: 453.89
Based on running the following script on a freshly generated about:memory profile:

  var max = 0;
  var sum = 0;
  var vals = $$('span[id^="Web Content"][id$="explicit"] span.mrValue');
  for (let vi = 0; vi < vals.length; vi++) {
  	let v = parseFloat(vals[vi].textContent);
  	sum += v;
  	max = Math.max(max, v);
  }
  console.log('Content processes:', vals.length);
  console.log('Sum:', sum);
  console.log('Max:', max);
  console.log('Average:', sum/vals.length);
This is with ~400 tabs opened but in "unloaded" state. Only 5 pages were actually fully loaded.

50 processes caused stuttering when scrolling in the tab bar. 10 & 5 processes felt smooth and allowed tab titles of background tabs to load in quickly during startup. 1 process took forever to actually load in the tab titles of background tabs on startup.

Setting changed via: about:config?filter=dom.ipc.processCount


Compartments are not quite what I'm talking about.

I'm more talking about metadata / caches. There's a fair bit of stuff that can be global with a single process that cannot be with multiple processes. Sometimes you can use shared memory tricks, but not always.

Also: I wasn't aware there was that much of a memory penalty. Yow.


I think I'd rather have multiprocess Firefox, even if I have to be a bit more judicious with my tab usage. I don't really know if having 40 tabs open is useful for me, or if it just makes me scatterbrained.


Doing any kind of web research for work is effectively a breadth-first tree traversal. Remembering all the higher level nodes, when you're ready to go the next level deep, would be a nightmare. My brain couldn't handle that, but tabs solve it effortlessly.

So I'd say that I keep many tabs open for the exact opposite reason. It enhances what I can do, due to the limitations of my brain.

Within a few decades, I expect for the concept of open tabs and bookmarks to merge. We'll be keeping far more tabs open, and flipping between them effortlessly, or scrolling back to that snapshot in time effortlessly.

I imagine closing tabs will be being like closing Emacs buffers. In practice, you practically never have the need to close an Emacs buffer, for anything you might have a small chance of wanting to work on again soon.


So they basically want to be Goolge Chrome? hmmm...


Other browsers are multi-process too? hmmm...


Wouldn't too many processes bloat memory? I hope it will be configurable to have some balance.


I hate FLASH when using with firefox. This is great news for all Flash-Hater :)


Why is it so? Flash is already in a separate process since '11 or '12 and I don't think electrolysis will bring any benefit in that regard.


Yes, but if there is a reason for Firefox to crash, it's due to the Flash Plugin.


Please elaborate, because IIRC the whole reason for offloading flash to a separate process was letting it crash without affecting the main process, and it fulfilled its duty every the time I've experienced a Flash crash.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: