>> Is there a more detailed description of what the issues with multiple> 
>> content processes are that e10s itself doesn't suffer from?

I'm interpreting this as, "What are the problems with multiple content
processes that single process does not have, from the user's perspective?"

This is mostly unknown, simply because dom.ipc.processCount > 1 is not
well tested. Most (if not all) e10s tests test a single content process.
As a team, when a bug is filed and we see that it's only reproducible
with dom.ipc.processCount > 1, the priority immediately drops, because
we're just not focusing on it.

So the issues with dom.ipc.processCount are mostly unknown - although a
few have been filed:
https://bugzilla.mozilla.org/buglist.cgi?quicksearch=processCount&list_id=12230722

>> One of the extremely common cases where I used to get the spinner was> when 
>> my system was under load (outside of Firefox.)  I doubt that we're> going to 
>> be able to fix anything in our code to prevent showing the> spinner in such 
>> circumstances. 

Yes, I experience that too - I often see the spinner when I have many
tabs open and I'm doing a build in the background.

I think it's worth diving in here and investigating what is occurring in
that case. I have my suspicions that
https://bugzilla.mozilla.org/show_bug.cgi?id=1161166 is a big culprit on
OS X, but have nothing but profiles to back that up. My own experience
is that the spinner is far more prevalent in the many-tabs-and-build
case on OS X than on other platforms, which makes me suspect that we're
just doing something wrong somewhere - with bug 1161166 being my top
suspect.

> Another such common case would be one> CPU hungry tab.

I think this falls more under the domain of UX. With single-process
Firefox, the whole browser locks up, and we (usually) show a modal
dialog asking the user if they want to stop the script. In other cases,
we just jank and fail to draw frames until the process is ready.

With a content process, the UI remains responsive, but we get this
bigass spinner. That's not an amazing trade-off - it's much uglier and
louder, IMO, than the whole browser locking up. The big spinner was just
an animation that we tossed in so that it was clear that a frame was not
ready (and to avoid just painting random video memory), but I should
emphasize that it was never meant to ship.

If we ship the current appearance of the spinner to our release
population... it would mean that my heels have been ground down to nubs,
because I will fight tooth and nail to prevent that from happening. I
suspect UX feels the same.

So for the case where the content process is being blocked by heavy
content, we might need to find better techniques to communicate to the
user what's going on and to give them options. I suspect / hope that bug
1106527 will carry that work.

Here's what I know:

1) Folks are reporting that they _never_ see the spinner when they crank
up dom.ipc.processCount > 1. This is true even when they're doing lots
of work in the background, like building.

Here's what I suspect:

1) I suspect that given the same group of CPU heavy tabs, single-process
Firefox will currently perform better than e10s with a single content
process. I suspect we can reach parity here.

2) I suspect that OS X is where most of the pain is, and I suspect bug
1161166 is a big part of it.

Here's what I suggest:

1) Wait for Telemetry data to come in to get a better sense of who is
being affected and what conditions they are under. Hopefully, the
population who have dom.ipc.processCount > 1 are small enough that we
have useful data for the dom.ipc.processCount = 1 case.

2) Send me profiles for when you see it.

3) Be patient as we figure out what is slow and iron it out. Realize
that we're just starting to look at performance, as we've been focusing
on stability and making browser features work up until now.

4) Trust that we're not going to ship The Spinner Experience, because
shipping it as-is is beyond ill-advised. :D

-Mike

On 05/05/2015 10:49 AM, Ehsan Akhgari wrote:
> On 2015-05-05 10:30 AM, Mike Conley wrote:
>> The e10s team is currently only focused on getting things to work with a
>> single content process at this time. We eventually want to work with
>> multiple content processes (as others have pointed out, the exact number
>> to work with is not clear), but we're focused on working with a single
>> process because we believe this is a strictly easier backdrop to develop
>> against.
>>
>> Once we've got single content process nailed down, we can then start
>> exploring multiple content processes.
> 
> I like roc and some other colleagues have also set the process count
> pref to 10 for a while and have not noticed any issues that were not
> present with one content process.  However, I realize that a few
> people's anecdotes cannot be a good enough reason to change what we're
> planning to do here.  :-)
> 
> Is there a more detailed description of what the issues with multiple
> content processes are that e10s itself doesn't suffer from?
> 
>> We might revisit that decision as things stabilize, but in the meantime
>> I want to stress something: if you're cranking up dom.ipc.processCount
>> to avoid the spinner, I suspect you are probably wallpapering over the
>> issue, and robbing us of data. We've just landed Telemetry probes to get
>> tab switch and spinner times[1]. If you bump up dom.ipc.processCount to
>> avoid the spinner, we miss out on knowing when you _would_ have seen the
>> spinner. This makes it harder for us to know whether or not things are
>> improving or getting worse. It makes it harder for us to identify
>> patterns about what conditions cause the spinner to appear.
> 
> One of the extremely common cases where I used to get the spinner was
> when my system was under load (outside of Firefox.)  I doubt that we're
> going to be able to fix anything in our code to prevent showing the
> spinner in such circumstances.  Another such common case would be one
> CPU hungry tab.
> 
> Are we planning on strategies to mitigate that general issue?  It's not
> clear to me that replacing the (possibly invisible, or at least only
> visible in the UI animations) jank that we have without e10s when
> switching tabs with a very visible spinner icon in the middle of the
> content area is the right trade-off.  Even though I _know_ the reason
> why we show the spinner, with my user hat on, I think when switching
> tabs, Firefox with 1 content process seems more sluggish than no-e10s,
> or rather, the visual effect that you'll get in case we show the spinner
> with e10s gives me a more sluggish experience than a few small
> animations in the UI stuttering.
> 
> Cheers,
> Ehsan
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to