Firefox Takes the Next Step Towards Rolling Out Multi-Process To Everyone (arstechnica.com)
An anonymous reader quotes a report from Ars Technica: With Firefox 50, Mozilla has rolled out the first major piece of its new multi-process architecture. Edge, Internet Explorer, Chrome, and Safari all have a multiple process design that separates their rendering engine -- the part of the browser that reads and interprets HTML, CSS, and JavaScript -- from the browser frame. They do this for stability reasons (if the rendering process crashes, it doesn't kill the entire browser) and security reasons (the rendering process can be run in a low-privilege sandbox, so exploitable flaws in the rendering engine are harder to take advantage of). Moreover, these browsers can all create multiple rendering engine processes and use different processes for different tabs. This means that the scope of a crash is narrowed even further, typically to a single tab. Internet Explorer and Chrome both implemented this long ago, in 2009. Firefox, however, has not offered a similar design. Although work on a multi-process browser was started in 2009, under the codename Electrolysis, that work was suspended between 2011 and 2013 as priorities within the organization shifted. In response, Mozilla started switching to a new extension system in 2015 that opened the door to a multi-process design. The first stage of Firefox's move to multi-process involves separating the browser shell from a single rendering process that's used by every tab. In Firefox 48, that feature was enabled for a small number of users who used no extensions. Firefox 49 was rolled out to include users running a limited selection of extensions. Now, in Firefox 50, a separate renderer process is used for most users and most extensions. Developers are now able to mark their extensions as explicitly multi-process compatible. Firefox 51 will extend this even further to cover all extensions, except those that are explicitly marked as incompatible. Mozilla says that, even with the limited changes made in Firefox 50, responsiveness of the browser has improved by 400 percent due to the separation between the renderer and the browser shell. During page loads, responsiveness will increase to 700 percent.
Isn't that the browser a lot of people used to use before the developers decided to wreck just about everything they liked in order to turn it into some kind of inferior imitation of Chrome?
I've calculated my velocity with such exquisite precision that I have no idea where I am.
The main question is how many DNS queries can it launch at once to pull in all the crazy bits that advertisers use. This goes back to the "how fast can it render" question. Well first it needs to pull in all the stuff and badly written web code, especially advertisements, pull in stuff from all over the place that often require multiple fetches from a myriad of different sites to get all the elements needed to render a page,
((browsers should give each page a score for how easy it was to assemble))
One of the issues today is sleeping or stopping of the processes of tabs that haven't been used in a while. I don't believe Chrome does this and would suspect it is one of the causes of making it heavy in terms of resources?
Jumpstart the tartan drive.
last I heard they were going to break it with version 40 sometime in August. There's a ton of work that'll have to be done to make it work properly in a multi-process environment. More or less a full re-write. To say nothing of having to redo all my UI components. Here's hoping they get cross compatibility with Chrome so I can at least get some code reuse out of it.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
I'd say the most important thing they need to fix is the popup blocker. Whether one tab crashes or they all crash in one go, isn't really a problem I'm bothered with. What I am bothered with is the way I still get popups.
Unfortunately there are some users who are going to be greatly adversely affected by Firefox moving to full multi-process. I am one of those. At work we make use of Firefox under Linux thin client environments, running on a centralized server. This type of change opens the door for Firefox to completely overrun all our CPU resources, no matter what we throw on it. Why? Because I am certain the Firefox developers won't give us an "off" switch for this new functionality (or if they do, it will be taken away eventually). See, if you are running on your own dedicated computer, it might be perfectly OK to unleash the browser to take over all your resources. But when it is a shared environment on a multiuser system, this can be horrible. Believe it or not, we do lots and lots of other things on that system at the same time. There aren't enough OS tricks available to deal with it. "Nice" just isn't enough (for a variety of reasons... none of which I have the time to explain right now). We are already having problems just trying to limit memory usage in Firefox (it would be the same with any browser) because ulimits don't apply correctly with certain types of threaded applications, just causing either no effect or crashing; and Firefox doesn't have good settings to deal with that either).
Yes, I know what we do is a little unusual and old-fashioned, but it actually works pretty good and has a lot of advantages. I certainly don't want to hold Firefox back, but I do wish that the developers would consider the fringe cases and give us persistent options to prevent Firefox from taking over more than X number of cores. Choice, options, and settings are key, that way, everyone could "win".
>"Furthermore firefox SHOULD still have options in about:config to limit the number of open tabs alowed which will help you keep both memory and cpu utilization under control."
I expect it does and will for a while, but it is my experience they like to deprecate such settings after a while, and often with no notice or documentation.
>"Stop being lazy with your administrative duties and it should be plenty possible to make even the latest version of firefox deal with the contraints you need it set against."
Please don't presume to know what my duties are, how much time I have spent on it, or what we have had to deal with in the past. Thanks
So if Trump wants us to buy American and hire American, and Toyota is Japanese, then why is the featured product on big.ly's front page a toy Yoda? I guess even though Toyota is Japanese, the company hires Americans to build vehicles right here in America.
Hey, maybe we should give Mozilla more money, so that they can spend it on community education projects and saving hungry children instead of fixing their browser.
Ask me about repetitive DNA
You are seriously suggesting the Chinese State browser, are you?
Time is what keeps everything from happening all at once.
It's still atrociously slow, atrociously. Infact there's a either a bug with one of my plugins or something but I've deliberately endured it for nearly 8 weeks, hoping my feedback data is going in the bloody logs somewhere to help.
I run about 6 or 7 plugins which are all fairly common and I have run the same ones for 3 to 5 years. They worked fine on my last profile rebuild but this most recent one was broken /out of the gate/
It's so bad i'm using chrome primarily. Firefox performance frustrates me absoloutely no end and I've been running e10s, 64bit nightlys now for over 6 months.
Infact, except for the last 4 weeks, the ironic (?) / odd thing is, nightly has been RIDICULOUSLY stable for a piece of nightly code. It's just plain stable. It's just slow as heck.
I don't know what idiot legacy code is in Firefox but they seriously need a scrum or party or a bonus or something and the whole fucking team *STOPS* for 3 weeks solid and focuses on NOTHING but performance, performance, performance.
If you check my slashdot post history, I've been whining about Firefox performance for over 3 years.
It's ridiculous, stop adding features, just stop. Make the damn thing fast. Because Chrome destroys firefox and I'm now running a HEAP of Chrome addons (which I never knew existed) to replicate my Firefox functionality and I'm very, very close to full replication now (Firefox: Tab Mix Plus is bloody hard to replicate, requires multiple poor addons to be configured right)
Seriously, just stop whatever is going on Mozilla devs and bring in "The Carmack" or the equivalent at coding. Scrap something old, I don't care but something is fundamentally wrong when a 24GB memory, quad core machine can run so poorly with a browser.
Noticed this - in the past, the browser would idle at 80-115% CPU usage, now it see it rest at 180-250% CPU usage.
Giving it the Restart command also seems faster - shutting down and coming back up is now less than a minute most times!
(hey, it frees up 4-7 gigabytes of physical ram, and several gigabytes of diskspace, and makes pretty much everything run faster for a while)
Firefox doesn't leak memory these days. Some add-ons do, but that's the add-on developer's fault. Part of the trade-off for having powerful add-ons with deep ties into the browser is the risk of memory leaks and security issues. Chrome is much more restrictive and aggressively manages add-ons, but even there you can get memory leaks with Javascript heavy sites like GMail.
const int one = 65536; (Silvermoon, Texture.cs)
SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
Shut the fuck up, they've been designing electrolysis to use a sane number of processes in order to reduce memory usage, do you know any other modern browser doing that?
I use Firefox in several windows, each having several tabs. When I need to do a restart, all I do is kill firefox.exe, do stuff & restart, start firefox and all windows and tabs come back after I click restore. Now that's useful. Great things never last long, I guess.
When the copyright term is "forever minus a day", live every day like it's the last.
Opera 12.16 doesn't work well for most recent websites.
Be or ben't
Ain't seen memory leaks for years... are you with us in 2016?
Be or ben't
I make no pretensions that the current work isn't mere Chrome-catch-up, but if they had listened to community in 2007 they might not have had to catch up. In the days of $350M revenue from Google, "patches welcome" was an obsolete response - management simply failed to properly manage the engineering process.
from #392073:
L A Walsh 2007-08-13 11:41:59 PDT
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6
This isn't a new problem, but has come to stand out as a fairly major "booboo" as Firefox has more windows open and has become slower and less responsive.
But firefox seems to be limited to 1 Core on a multi-way machine. I have a 2Px2Core setup (4 cores). Firefox's threading is broken in that it is constrained to 1 Core.
Given that cores are increasing in number but CPU GHz is not, this is a "major bug". While it should be a goal, overall to decrease all resource usages, when it becomes necessary to use more resources, FF should be able to take advantage of *parallel* processing (running on more than one processor at a time).
It looks like they'll have this rolled out right about the ten-year mark.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
That's nice, but I'd rather you jackasses just fix yer fuckin' memory leaks.
Pro Tip: Stop "improving" shit until it turns into a steaming pile of donkey shit.
Dude, maintenance is boring.
You are responsible for a pack of pitbulls, and are equipped with Milkbone and "Here doggie, doggie, doggie". Then someone has the idea of multiple people in charge of a single pitbull, each person equipped with Milkbone and "Here doggie, doggie, doggie". Should anyone feel safer?
I come here for the love
I didn't read TFS but since this is Slashdot and the subject is Firefox. One of two things is wrong:
Change happened, and as we all know, any change is bad. That's why people leave Firefox for Chrome! Stupid Mozilla!
Change didn't happen, why won't you change ${thing}? That's why people leave Firefox for Chrome! Stupid Mozilla!
Of course if I were calling the shots it'd be the most perfect browser ever, but I won't even so much as file a bug report even though it is FOSS. That way I don't have to come to the realization that things are more complicated than my own personal desires that may not even be reflective of the average user.
Firefox doesn't leak memory these days.
WRONG.
Just cruising through this digital world at 33 1/3 rpm...
WHY are you still using windows XP?
no updates, no security and many apps already fail to run on it...
If the machine is old, switch to linux... if you really want windows, at least use the windows 7
Higuita
Shut the fuck up, they've been designing electrolysis to use a sane number of processes in order to reduce memory usage, do you know any other modern browser doing that?
Shut the fuck up, I don't care. You're the kind of dick who brags about his car's awesome paint job when it's been up on cinder blocks for the last 5 years.
Just cruising through this digital world at 33 1/3 rpm...
Ain't seen memory leaks for years... are you with us in 2016?
Obviously because you don't personally see them, they don't exist.
Just cruising through this digital world at 33 1/3 rpm...
Based on my tests with both Pale Moon and Firefox, the problem isn't memory leaks, but the fact the caching policy doesn't want to release the memory at all. Firefox caches WAY too much damn stuff for no good reason. Eventually the memory can be released, but you have to do all kinds of stupid tricks, like use the back and forth buttons a few dozen times and load lots of blank pages to clear out the crap.
I'm desperately trying to find out why Pale Moon 26.5 worked terrific usually hovering around 300MB for hours, and now version 27.0 has the same awful memory behavior as Firefox, sucking down 1.6GB of memory within 5 minutes and staying there forever. I'm pretty sure it's a configuration/policy issue, and not an engine bug. I'm also pretty sure it's not a user-configurable setting, though, so it's going to be real fun to track down.
FWIW, it seems that the latest FF build is more capable at memory management. I've only had it up about 12 ~ 15 hours and it's hovering around 1.4Gb. We'll see where it is after a day or two.
If it stays there and doesn't keep climbing then I'll be very happy...I've been dealing with FF memory issues for the last 20 releases or so.
Just cruising through this digital world at 33 1/3 rpm...
I'm glad they're finally giving each tab its own process. Of course, if they didn't they'd wind up in the dust bin of history... its about the minimum of work they need to do just to keep Firefox relevant. There is much more they need to do in addition. Honestly, Firefox's biggest competition here, after fixing the tab problem, is going to be chrome 55 with its significantly improved (reduced) memory footprint.
The interesting thing about giving each tab its own process is that although this increases the total amount of memory used by the browser, it also has the effect of reducing the memory fragmentation that forces the OS to keep almost every byte of it in core (Firefox is best known for this effect). With the process separation, the OS will have a much easier time paging out unused memory without nominal browser operation forcing every single last page back in. THAT is a big deal, and is one of the reasons why chrome is so much more usable than firefox.
I regularly leave my browser(s) running for weeks. Process sizes generally bloat up during that time, to the point where the browser is consuming ~8GB+ of ram. With Firefox the horrid memory management in-browser forces most of that to stay in core. With chrome, most of it gets paged out and stays out. This makes chrome far more usable, particularly considering the fact that my workstation runs from a SSD and has a relatively large (~60G) swap partition configured.
But these days I'm a chrome user. Firefox has been too buggy for at least the last 4 years. It crashes on all sorts of things, taking the whole browser out with it. And after all this time they *STILL* can't fix the idiotic pop-up windows. Disable popups only disables some of them. That and the bugs is the main reason why I stopped using Firefox.
In terms of sandboxing... also a good thing. In addition to the work the browser does, I also segregate my browser instances into multiple dummy user accounts (that my GUI buttons can just ssh into from my main account), and run multiple instances of the browser from those. One for unsecure browsing, one for browsing important accounts, and one with the most bulletproof setup I can think of (no video group access, no direct X server access)... which is slow, but about as safe as its possible to be in an X environment.
People often forget about user account separation. It's a bit sad.
-Matt
There seems to be a lot of confusion about processes and cores and cpu use. I'm going to clarify some of this for people (I should konw after all!).
A process can be thought of as a memory management context. The memory image used by the program. But a process is not limited to just one cpu. A process can be multi-threaded. In a multi-threaded process, all threads share the same memory context but each is scheduled independently by the schedluer, so one process can in fact easily use all available cpu resources.
When a process fork()s new processes, each new process has its own independent memory mangement context. However, any data from the parent will be entirely shared by the child until one or the other modifies it (then it because separate). So simply creating new processes does not necessarily eat all that much memory. It depends what the new processes do.
Browsers tend to use a combination of processes and threads:
office1:/home/dillon> ps ax | fgrep chrome | wc -l
23
office1:/home/dillon> ps axH | fgrep chrome | wc -l
188
Firefox also uses both processes and threads:
office1:/home/dillon> ps ax | fgrep firefox | wc -l
4
office1:/home/dillon> ps axH | fgrep firefox | wc -l
69
In fact, most complex GUI programs probably uses both processes and threads. However, firefox, until now, does not segregate tabs into processes. The processes it uses are to mange other aspects of browser operation.
In terms of cpu utilization, one process thread can use up to 100% of one cpu thread. One process with N threads can eat up all of your cpu resources. Multilple processes won't eat up any more cpu resources than one process with multiple threads.
In terms of memory use, firefox has *HORRIBLE* memory fragmentation problems (and always had). This means that if Firefox has a VSZ of 5GB, it will probably be forcing 4GB of that into core even when idle or even if you are only messing with one out of many tabs. This has been a serious problem in Firefox for ages. One advantage of giving each tab its own process is that now the OS can take care of cleaning up after Firefox's stupid memory mangement (even if firefox doesn't fix it), because the process context is tracking the per-tab memory use and the modified memory used in that tab is not fragmenting the memory used by other tabs. So in a per-tab process mechanism, when you close the tab the OS can scrap all of that memory and that is a good thing.
So going multi-process won't make memory use any worse. In fact, it will help the OS separate the VM pages out and give the OS a chance to page idle memory to swap, whereas the memory fragmentation that exists in a single-process-many-tabs setup generally prevents the OS from being able to swap out idle memory resources.
In terms of idle cpu use, there are many issues here. 100%+ idle cpu use on idle pages can usually be attributed to three things:
(1) Bad interaction between the browser and the sound device (the intermediate streaming libraries have been known to cause problems in the past).
(2) The open tabs are running lots of ads with animations or video. AdBlock+ helps a lot here.
(3) The javascript on many (most) sites gets *very* unhappy when it is not given any cpu at all, so the browser has to give each tab some cpu so the tab's javascript from that site can run at least a little in order to stay happy. Also, a great deal of site javascript is badly written and consumes cpu resources even when idle.
Finally, in terms of cpu use, the operating system's scheduler usually does a good job but if the browser is causing problems for other work you do on the machine you can always nice +5 or nice +10 the browser. Or (in Linux) run it in a scheduler-constrained container. However, either of these actions will reduce the responsiveness of the browser. Most people don't do it.
-Matt
please use the proper wording here on /., to avoid unnecessary slashvertisements...
I checked about:support and saw that multiprocess windows was not enabled. Installed the Add-on Compatibility Reporter and saw that WoT (yeah, privacy, blah blah spyware blah blah) and Ubuntu Modifications add-ons were incompatible with multiprocess. Disabled those two and ... wow. The speedup and responsiveness improvement is substantial. I also disabled WoT on my Windows 10 laptop, and the speedup there was also improvement there.
Part of it could be "Yeah, running fewer add-ons, of course it'll be faster", but I've got a whole bunch of other add-ons; Tree Style Tab, NoScript, LastPass, etc. I think multi-process is a win.
This (50.1) is the flakiest release in a long, long time for me. I have to quit the browser and restart it several times a day because it begins to choke for no apparent reason.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
The newest version of Pale Moon does not allow the Ghostery Add-on.
Is there a substitute?
Yeah, the trouble is that when the browser gets to 800MB the pauses become really noticeable, and at full tilt (on my system that's 1.6GB), the browsing is really annoying. I'm on the latest version, BTW. I have FF and Pale Moon installed side-by-side, along with other browsers.
Vulgar as it may be, I'm sad to see your comment has been modded as flamebait. It's a genuine problem that FF fans have been downplaying for way too many years.
Vulgar as it may be, I'm sad to see your comment has been modded as flamebait. It's a genuine problem that FF fans have been downplaying for way too many years.
It would have been modded down even if I'd said "pretty please". It's a sign of the downvoter's irrational defense and denial of a genuine problem.
Some of the numpty's here deny it because they haven't personally seen it, so "obviously" the problem must not exist.
I think their downvoting just proves my point, otherwise why would they care enough to waste a mod point? :)
Just cruising through this digital world at 33 1/3 rpm...