e10s-multi

Discussion about official Mozilla Firefox builds
User avatar
Virtual_ManPL
Posts: 2052
Joined: July 24th, 2008, 5:52 am
Contact:

Re: e10s-multi

Post by Virtual_ManPL »

@ GHM113 - Don't forget that it's depends on how many threads your CPU has, try it on 1 or 2 threaded CPU and results can be very different, or at least it was in my tests. ;)
Virtualfox persona
Tired of constant Firefox UI changes? XUL extensions are not working anymore? Try SeaMonkey, Waterfox Classic, Pale Moon.
Ezh
Posts: 496
Joined: November 5th, 2002, 1:35 pm
Location: Tallinn, Estonia

Re: e10s-multi

Post by Ezh »

https://bugzilla.mozilla.org/show_bug.cgi?id=1304546 - was it already enabled on Aurora 54?
User avatar
Virtual_ManPL
Posts: 2052
Joined: July 24th, 2008, 5:52 am
Contact:

Re: e10s-multi

Post by Virtual_ManPL »

Virtualfox persona
Tired of constant Firefox UI changes? XUL extensions are not working anymore? Try SeaMonkey, Waterfox Classic, Pale Moon.
User avatar
GHM113
Posts: 707
Joined: December 16th, 2015, 3:59 am
Location: Moscow, Russia

Re: e10s-multi

Post by GHM113 »

Virtual_ManPL wrote:@ GHM113 - Don't forget that it's depends on how many threads your CPU has, try it on 1 or 2 threaded CPU and results can be very different, or at least it was in my tests. ;)
It looks like Nightly suffers from the same problem as Chrome browsers: more content processes provide smoother scrolling but require more CPU power so if your processor is not fast enough you are gonna experience a degradation in performance. I've just installed Vivaldi and the scrolling seemed to be smooth when I had 3-5 tabs loading at once but as soon as I started opening one link after another CPU usage jumped to 100% and the scrolling fps dropped considerably.

It looks like I'll have to upgrade to 10-core Kaby Lake if I want to enjoy 60 fps scrolling in Vivaldi. Since Firefox is switching to WebRender that uses GPU to render the web pages, videocard is going to be the bottleneck in this case so I'll have to buy Titan Volta for Firefox :-"
Ezh wrote:https://bugzilla.mozilla.org/show_bug.cgi?id=1304546 - was it already enabled on Aurora 54?
Yes, my Aurora uses 4 content processes by default.
Sorry for my poor English.
Timvde
Posts: 269
Joined: February 7th, 2013, 3:19 pm

Re: e10s-multi

Post by Timvde »

Virtual_ManPL wrote:Yet, you sill said nearly exactly the same thing as me... or maybe I'm missing point or I didn't understood properly ;)
I'm just sharing my opinion based on my tests, but even looking on Mozilla developers, they have the same results.
Well, I didn't say you were *wrong*, but you were missing some important details.
Virtual_ManPL wrote:Only for protecting tabs from crashes,
in other ways, I didn't observed any performance gains for having more web processes than CPU threads,
just only more memory.
Imagine having for example 4 content processes and 20 open tabs. This means (to keep it simple) 5 tabs per process. Now, if in one of these processes, a tab starts hogging resources, it will affect the performance of all other tabs in the same process. If it had a process of its own, the impact would have been a lot less.

Of course, the question is whether this is worth the extra memory usage, and at the moment, I tend to say no. I just wanted to clarify that "optimal" is a rather vague concept, and that there isn't an actual "optimal" solution. What would be cool, imo, is being able to put known heavy websites (such as Facebook, or when playing a game) in their own process, while still grouping other tabs together.
User avatar
Omega X
Posts: 8225
Joined: October 18th, 2007, 2:38 pm
Location: A Parallel Dimension...

Re: e10s-multi

Post by Omega X »

GHM113 wrote:
Virtual_ManPL wrote:@ GHM113 - Don't forget that it's depends on how many threads your CPU has, try it on 1 or 2 threaded CPU and results can be very different, or at least it was in my tests. ;)
It looks like Nightly suffers from the same problem as Chrome browsers: more content processes provide smoother scrolling but require more CPU power so if your processor is not fast enough you are gonna experience a degradation in performance. I've just installed Vivaldi and the scrolling seemed to be smooth when I had 3-5 tabs loading at once but as soon as I started opening one link after another CPU usage jumped to 100% and the scrolling fps dropped considerably.

It looks like I'll have to upgrade to 10-core Kaby Lake if I want to enjoy 60 fps scrolling in Vivaldi. Since Firefox is switching to WebRender that uses GPU to render the web pages, videocard is going to be the bottleneck in this case so I'll have to buy Titan Volta for Firefox :-"
Ezh wrote:https://bugzilla.mozilla.org/show_bug.cgi?id=1304546 - was it already enabled on Aurora 54?
Yes, my Aurora uses 4 content processes by default.
Its not quite the same since Chrome based browsers will open a process for each tab/website. The hard limit is going to be 4 content processes for the time being. Also, Webrender can't be super demanding since its being tooled for mobile as well. If a recent Intel graphics chip can't handle it, I'd be surprised. Also, don't forget Stylo which should be faster than what's there now.
avada
Posts: 1932
Joined: February 10th, 2008, 6:30 am
Location: Hungary

Re: e10s-multi

Post by avada »

squall_leonhart wrote:
Virtual_ManPL wrote:
GHM113 wrote:It looks like it is time to enable 8 content processes in Nightly :-"
Mozilla should implement a heuristic to replace dom.ipc.processCount (Bug 1066789).
no thanks, not till lazy tabs are implemented completely.
By the way. What's that supposed to be? They keep referring to "lazy browsers" and "lazy tabs" on bugzilla all the time, but they never mention what it's supposed to be.
User avatar
Virtual_ManPL
Posts: 2052
Joined: July 24th, 2008, 5:52 am
Contact:

Re: e10s-multi

Post by Virtual_ManPL »

GHM113 wrote:
Virtual_ManPL wrote:@ GHM113 - Don't forget that it's depends on how many threads your CPU has, try it on 1 or 2 threaded CPU and results can be very different, or at least it was in my tests. ;)
It looks like Nightly suffers from the same problem as Chrome browsers: more content processes provide smoother scrolling but require more CPU power so if your processor is not fast enough you are gonna experience a degradation in performance. I've just installed Vivaldi and the scrolling seemed to be smooth when I had 3-5 tabs loading at once but as soon as I started opening one link after another CPU usage jumped to 100% and the scrolling fps dropped considerably.
Exacly and that's the point for implementing a heuristic to replace dom.ipc.processCount (Bug 1066789) to not slow down old CPUs more and to use more threads which new CPUs have.
GHM113 wrote:It looks like I'll have to upgrade to 10-core Kaby Lake if I want to enjoy 60 fps scrolling in Vivaldi.
There aren't any 10 core Kaby Lake,
only 4 core ones with 8 threads.
GHM113 wrote:Since Firefox is switching to WebRender that uses GPU to render the web pages, videocard is going to be the bottleneck in this case so I'll have to buy Titan Volta for Firefox :-"
Firefox is already using GPU rendering via Direct3D and OpenGL, so don't worry about it.


Timvde wrote:
Virtual_ManPL wrote:Yet, you sill said nearly exactly the same thing as me... or maybe I'm missing point or I didn't understood properly ;)
I'm just sharing my opinion based on my tests, but even looking on Mozilla developers, they have the same results.
Well, I didn't say you were *wrong*, but you were missing some important details.
So explain which one, as still didn't see any.
Timvde wrote:
Virtual_ManPL wrote:Only for protecting tabs from crashes,
in other ways, I didn't observed any performance gains for having more web processes than CPU threads,
just only more memory.
Imagine having for example 4 content processes and 20 open tabs. This means (to keep it simple) 5 tabs per process. Now, if in one of these processes, a tab starts hogging resources, it will affect the performance of all other tabs in the same process. If it had a process of its own, the impact would have been a lot less.
"You missing some important details" as it's only optimal and valid for 4 threaded CPUs.
If you will have 1 or 2 threaded CPU, and also you will have "dom.ipc.processCount" set to value which is more than how much threads your CPU has, like 4 by default for now on Nightly, you will experience massive GUI slowdown, sometimes hanging GUI and even in serious cases mouse movement will be laggy, on more then 2 heavy hoggy websites pages, at least it's in my case with my tests on various hardware.
Timvde wrote:Of course, the question is whether this is worth the extra memory usage, and at the moment, I tend to say no. I just wanted to clarify that "optimal" is a rather vague concept, and that there isn't an actual "optimal" solution. What would be cool, imo, is being able to put known heavy websites (such as Facebook, or when playing a game) in their own process, while still grouping other tabs together.
There is always optimal setting,
if it's not, that's why heuristic exist.


avada wrote: By the way. What's that supposed to be? They keep referring to "lazy browsers" and "lazy tabs" on bugzilla all the time, but they never mention what it's supposed to be.
The "lazy tabs" are only for session restoration. It won't help in any way with stifle performance hoggy websites in foreground and background tab, which are already opened and loaded. For this we need some tab discarding and complete tab halting etc.
Virtualfox persona
Tired of constant Firefox UI changes? XUL extensions are not working anymore? Try SeaMonkey, Waterfox Classic, Pale Moon.
Timvde
Posts: 269
Joined: February 7th, 2013, 3:19 pm

Re: e10s-multi

Post by Timvde »

Virtual_ManPL wrote:If you will have 1 or 2 threaded CPU, and also you will have "dom.ipc.processCount" set to value which is more than how much threads your CPU has, like 4 by default for now on Nightly, you will experience massive GUI slowdown, sometimes hanging GUI and even in serious cases mouse movement will be laggy, on more then 2 heavy hoggy websites pages, at least it's in my case with my tests on various hardware.
I'd be *really* surprised by that. That's not how computers work.
Are You A Wiiizard?
Posts: 469
Joined: August 30th, 2012, 4:27 am

Re: e10s-multi

Post by Are You A Wiiizard? »

Timvde wrote:
Virtual_ManPL wrote:If you will have 1 or 2 threaded CPU, and also you will have "dom.ipc.processCount" set to value which is more than how much threads your CPU has, like 4 by default for now on Nightly, you will experience massive GUI slowdown, sometimes hanging GUI and even in serious cases mouse movement will be laggy, on more then 2 heavy hoggy websites pages, at least it's in my case with my tests on various hardware.
I'd be *really* surprised by that. That's not how computers work.
Yeah, if you are testing on such limited CPUs you would often be running with very slow/weak other hardware that could be the bottleneck and not actually the CPU.
User avatar
Virtual_ManPL
Posts: 2052
Joined: July 24th, 2008, 5:52 am
Contact:

Re: e10s-multi

Post by Virtual_ManPL »

Timvde wrote:
Virtual_ManPL wrote:If you will have 1 or 2 threaded CPU, and also you will have "dom.ipc.processCount" set to value which is more than how much threads your CPU has, like 4 by default for now on Nightly, you will experience massive GUI slowdown, sometimes hanging GUI and even in serious cases mouse movement will be laggy, on more then 2 heavy hoggy websites pages, at least it's in my case with my tests on various hardware.
I'd be *really* surprised by that. That's not how computers work.
You should know that increasing processes won't bring magically performance increase,
but proper multi-threading support will do, as process != thread.
We don't need thousands processes to get proper performance management,
which use everything what your PC can give with making everything responsive.

That's why Chromium is so much bloaty hog right now.
Are You A Wiiizard? wrote:
Timvde wrote:
Virtual_ManPL wrote:If you will have 1 or 2 threaded CPU, and also you will have "dom.ipc.processCount" set to value which is more than how much threads your CPU has, like 4 by default for now on Nightly, you will experience massive GUI slowdown, sometimes hanging GUI and even in serious cases mouse movement will be laggy, on more then 2 heavy hoggy websites pages, at least it's in my case with my tests on various hardware.
I'd be *really* surprised by that. That's not how computers work.
Yeah, if you are testing on such limited CPUs you would often be running with very slow/weak other hardware that could be the bottleneck and not actually the CPU.
So properly setting the "dom.ipc.processCount" value, do some magic, at least in my cases. ;)
Virtualfox persona
Tired of constant Firefox UI changes? XUL extensions are not working anymore? Try SeaMonkey, Waterfox Classic, Pale Moon.
mamooth
Posts: 45
Joined: August 28th, 2012, 4:50 pm

Re: e10s-multi

Post by mamooth »

The 54 beta release will have a blind taste test for e10s-multi.

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

Looking at the code, it appears beta users will have 25% chance each of having either 1, 2, 4 or 8 content processes.
User avatar
GHM113
Posts: 707
Joined: December 16th, 2015, 3:59 am
Location: Moscow, Russia

Re: e10s-multi

Post by GHM113 »

I decided to test Nightly one more time. 4-core 4-thread i5 2300 2.8 Ghz, Nightly 22-04-17, uBO, Tab Mix Plus and NoScript installed, disk cache disabled. Testing methodology:
Load 9 tabs aka tab #1, tab #2, tab #3,..., tab #9 with different web pages (instagram, wccftech, yandex, etc)
Start loading 100 bookmarks in the background using "Open all in tabs"
<Start measuring time>
Switch to tab #1, wait until the contents of tab #1 are rendered
Switch to tab #2, wait until the contents of tab #2 are rendered
Switch to tab #3, wait until the contents of tab #3 are rendered
..
Switch to tab #9, wait until the contents of tab #9 are rendered
<Stop measuring time>

Results:
//CPU usage stayed at 100% with 4,6,8,16 content processes
4 content processes: 15 seconds
6 content processes: 17 seconds
8 content processes: 20 seconds
16 content processes: 27 seconds

So this data pretty much confirms what Virtual_ManPL said before: more threads are better only if you have enough CPU power to feed them [-X Now I need to figure out how to measure scrolling smoothness :-"
Sorry for my poor English.
Timvde
Posts: 269
Joined: February 7th, 2013, 3:19 pm

Re: e10s-multi

Post by Timvde »

GHM113 wrote:So this data pretty much confirms what Virtual_ManPL said before: more threads are better only if you have enough CPU power to feed them [-X Now I need to figure out how to measure scrolling smoothness :-"
Of course, I never said it wasn't when pushing them all to 100%. Let me quote myself:
Timvde wrote:In this case, the question is whether the current process is busy with other things. When he is loading a bunch of tabs in the background like he said before and all processes are 100% busy, it is probably indeed better to have the same number of processes as your CPU has threads (or just a little more actually, since these processes will sometimes be waiting for I/O, and you want to run other render stuff on your CPU at that point). If not much is happening on the background, a higher dom.ipc.processCount is better, since it will be more like one tab per process.
5 processes might or might not be slightly better with 4 cores. That'll depend on network latency. It's a pretty thin line anyway.

But hogging all your cores to 100% is not the common use case, and more processes will prevent a badly behaving tab from impacting others.
User avatar
GHM113
Posts: 707
Joined: December 16th, 2015, 3:59 am
Location: Moscow, Russia

Re: e10s-multi

Post by GHM113 »

Timvde wrote:Of course, I never said it wasn't when pushing them all to 100%. Let me quote myself:
Thank you, I was not trying to argue with you, I just posted my observations. I actually like what you are saying, that means Nightly will get a performance boost once I upgrade to a 6/8-core processor :wink:
Sorry for my poor English.
Post Reply