
Multiprocess Firefox - ValentineC
https://developer.mozilla.org/en-US/Firefox/Multiprocess_Firefox
======
pllbnk
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.

~~~
sebcat
> 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?

~~~
scottjad
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.

~~~
rexf
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.

~~~
xixixao
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.

~~~
mmebane
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.

------
Caelish
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.

~~~
monk_e_boy
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.

~~~
tete
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.

~~~
monk_e_boy
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.

~~~
callahad
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_...](https://developer.mozilla.org/en-
US/docs/Tools/Debugger/How_to/Black_box_a_source)

------
suprgeek
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.

~~~
_wmd
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.

~~~
nitrogen
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.

------
zapt02
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.

~~~
nly
Chromium circa 2008?

~~~
ethana
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.

~~~
timothya
Chrome also groups multiple tabs on single process, based on a number of
factors: [https://www.chromium.org/developers/design-
documents/process...](https://www.chromium.org/developers/design-
documents/process-models)

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

------
TazeTSchnitzel
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.

~~~
sp332
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.

~~~
yoasif_
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...](http://mikeconley.ca/blog/2015/05/04/electrolysis-and-the-big-tab-
spinner-of-doom/)

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

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

~~~
Rusky
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.

~~~
sp332
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](https://news.ycombinator.com/item?id=9541138)

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

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

~~~
odiroot
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.

------
obituary_latte
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)

~~~
viraptor
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)

~~~
icebraining
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).

~~~
gpvos
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.

------
0xFFC
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.

~~~
higherpurpose
At this point pretty much _all_ (modern) browsers _except_ Firefox have this.

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

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

~~~
greenyoda
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."

~~~
wbamberg
There's some interesting talk about that in mozilla.dev.platform:
[https://groups.google.com/forum/#!topic/mozilla.dev.platform...](https://groups.google.com/forum/#!topic/mozilla.dev.platform/NHIjpGvOelE)

------
PythonicAlpha
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?

~~~
yoasif_
> 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](https://wiki.mozilla.org/Electrolysis#Schedule)

------
jug
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.

------
NanoWar
Six years in the making? Wow...

------
tmikaeld
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.

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

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

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

~~~
callahad
Can you please post a bug (with screenshots, list of add-ons installed, and
any custom browser css tweaks) to
[https://bugzilla.mozilla.org/](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.

~~~
drvortex
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.

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

~~~
sp332
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](https://www.mozilla.org/en-US/firefox/channel/#beta)

------
solve
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?

~~~
firethief
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.

~~~
ibotty
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/](https://addons.mozilla.org/en-
us/firefox/addon/unloadtab/)

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

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

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

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

~~~
kasabali
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.

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

~~~
kasabali
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.

