It definitely makes sense to start your performance investigation with
processCount=1 since that will likely highlight the low-hanging fruit which
should be fixed regardless of processCount.

My question is: after a decent period of time picking the low-hanging
fruit, if there is still non-trivial spinner time for processCount=1, would
the team consider shifting efforts to getting processCount>1 ship-worthy
instead of resorting to heroics to get processCount=1 ship-worthy?

On Tue, May 5, 2015 at 10:41 AM, Mike Conley <mcon...@mozilla.com> wrote:

> >> 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
>
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to