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.
The light at the end of the tunnel is only the light of an oncoming train
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".
PLEASE. I am tired of the minutely update that happens without my permission or consent and forces me to restart my browser once every TEN SECONDS. Hate Chrome. Hate Firesux. Any GOOD ones out there?
I don't take that software project seriously anymore. They have no real multiplatform strategy. If they would be serious about multi task they would code the main branch for haiku.
backend, but it should be possible to set per-user limits on memory, cpu time, i/o access and other features to help reduce the chances of that happening.
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.
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.
we run it at work on about 60 machines, with 3-4 add-ons (adblock, https everywhere, etc.). seems to work just fine. thanks. edge is stoopid. chrome is opaque.
then howcomes every-other *.midi download I try crashes my FFox 50 browser under Ubuntu-16.04 ?? Mebby they mean REAL wheat kernels and real M$ chaff ! But, THAT could get separated by an 1818 ginmill !!
>"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
http://www.opera.com/download/...
Surf the Web with lightning speed.
Presto/2.12.388 Version/12.16
https://duckduckgo.com/
Search Engines in all countries in the world
http://searchenginesindex.com/
"With Firefox 50, Mozilla has rolled out the first major piece of its new multi-process architecture."
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. Oh, wait, we passed that point back around Firefox 30 or so.
Just cruising through this digital world at 33 1/3 rpm...
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.
The amount of time (years) it is taking them to implement this feature demonstrates how horrid and agony-inducing its code is.
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
> 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
You are right. All we can know is what you've posted. And what you've posted gives every indication that either you are not fit for the job, or you are running firefox on some obscure platform that is not fit for the job. That's because no modern OS lacks the ability to control processes the way you say you want to control processes.
If you prefer not to be judged by what you post, there is an easy solution. Don't post.
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)
Rather worryingly I can't understand what @grcumb is saying. Isn't putting stuff into separate processes an extra layer in adding security? And a major one? If he's a point then I misunderstand something fundamental.
I'd appreciate any explanation, thanks.
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.
See subject: By placing your fav. sites @ top of hosts properly reverse DNS resolved it resolves faster vs. calling remote DNS!
* Easiest & best custom hosts file creator (only 1 that does what's noted above) APK Hosts File Engine 9.0++ SR-4 32/64-bit https://www.google.com/search?hl=en&source=hp&biw=&bih=&q=%22APK+Hosts+File+Engine%22+and+%22start64%22&btnG=Google+Search&gbv=1/
(Best part is the other 1/2 of what it does is block ads!)
APK
P.S.=> Safe & 100% FREE https://www.virustotal.com/en/file/e01211ca36aa02e923f20adee0a3c4f5d5187dc65bdf1c997b3da3c2b0745425/analysis/1433430542/ Verified by Malwarebytes' S. Burn "seen the code & it's safe" http://forum.hosts-file.net/viewtopic.php?f=5&t=4290/
The reason why we have this is because the attacks against web browsers are getting more and more sophisticated. Combine that with the "wink, wink, nudge, nudge" relationship between ad sites and criminal organizations distributing malicious software, it isn't a matter of design that the browser has to be separated from everything; it is a matter of necessity.
Bug nothing to do with 'tweets'.
Bug exist short time.
Bug was fixed very quickly.
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)
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.
Is there a browser that sandboxes each tab individually? I run into a lot of problems in Chrome with HTML5 causing all tabs to pause rendering when another tab is busy.
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
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?
In the process, they probably created dozens of vulnerabilities that will be exploitable against the Tor Browser Bundle.