New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 693054 link

Starred by 6 users

Issue metadata

Status: Untriaged
Owner: ----
Cc:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocked on:
issue 698556
issue 639852
issue 695714


Participants' hotlists:
speed-incidents


Sign in to add a comment

Abysmal experience on politico.com will multiple tabs open

Project Member Reported by komoroske@chromium.org, Feb 16 2017

Issue description

Chrome Version: 56.0.2924.87 (Official Build) (64-bit), also seen on Canary 	58.0.3014.0 (Official Build) canary (64-bit)
OS: OS X 10.11.6

What steps will reproduce the problem?
(1) Visit Politico.com on a Mac Pro and a fast connection
(2) While the page is loading (it takes 10-15 seconds to complete), Cmd-click on ~3 articles to load them in background tabs

What is the expected result?

The pages load in a reasonable amount of time, Chrome stays responsive, and the CPU use is low

What happens instead?

Multiple chrome processes use 80%+ CPU for an extended period of time--settling over time, but still staying at a high baseline. Scrolling any page janks horribly. Every so often the loading indicator on each tab starts spontaneously spinning, then settling, then spinning again. Basically, it's unusable.

Trace: https://drive.google.com/open?id=0BzwdQMmIG4kqRzZPeGVOZHdrOTA
The trace is from Chrome Canary with no other tabs open. When the trace starts, I reload the politico.com tab. Then while it's loading I open three other tabs, wait 10 seconds or so, switch to one of the opened tabs, and scroll.

Glancing at the trace, there seems to be some weird stuff going on with networking.



 
Labels: Performance-Network Performance-Power

Comment 2 by nduca@chromium.org, Feb 22 2017

Hmm FrameHostMsg_ContextMenu is using 950ms on the browser *main* thread. That would definitely cause everything to go wonky --- chrome is only as fast as its browsermain can go.

Comment 3 by ojan@chromium.org, Feb 24 2017

Blockedon: 639852 695714
Cc: hwi@chromium.org skyos...@chromium.org altimin@chromium.org rpop@chromium.org
I think there's a couple things here:

1. There might be chrome side bugs here causing excessive CPU usage. Someone needs to dig into these traces to understand if there are bugs we need to fix.

2. Re: loading spinner UI, I filed issue 695714 to track considering changing how the spinner works.

3. We have a close to shipping intervention where we throttle background tabs to 1% CPU wall time. That should make this experience considerably better from a CPU perspective (#expensive-background-timer-throttling in about:flags). It will take the background tabs longer to load, but they shouldn't jank up your computer and the baseline when they settle should be low. There's some caveats the limit the efficancy of the v1 of this feature, but we have plans to work through those over time.

altimin: Can you confirm that enabling the time-based task throttling mostly addresses the CPU usage issue? If it doesn't, I'd like to understand why.
I wonder if the background renderers are getting backgrounded properly? As long as their priorities are correct, the OS should make sure they won't jank up the foreground tab (modulo browser-side funny business).
There are a number of things going wrong here:

1. Heavy pages using a lot of CPU.
2. We do not throttle timers for first 10 seconds in the background.
3. We do not throttle loading tasks and there are a lot of them.

So while budget-based timer throttling is going to help, it won't solve the problem completely. I have an approximate plan in my head about next steps here.

Comment 6 by nduca@chromium.org, Feb 24 2017

Cc: kinuko@chromium.org
I do notice that the browser-side cpu is pretty swamped just from all the requests coming in from the tabs. Kinuko and I were talking the other day about the need for proper prioritization of IPC etc, and maybe this is a strong example of why we need it.

Comment 7 by shrike@chromium.org, Feb 25 2017

Re: c#4, OS-level renderer backgrounding is an experiment right now on macOS.

Comment 8 by shrike@chromium.org, Feb 25 2017

Cc: shrike@chromium.org

Comment 9 by kinuko@chromium.org, Feb 27 2017

Interesting. I see the tabs sending really lots of resource loading requests (in addition to other requests), competing browser-side cpu and network resources fiercely with other tabs.

Comment 10 by ojan@chromium.org, Mar 12 2017

Cc: nduca@chromium.org benhenry@chromium.org
Regarding the chromium side bugs, I have a few observations:
1. If you do the repro steps in the original post in safari, scrolling isn't janky at all.
2. It's not just politico. Go to https://www.google.com/search?q=morning+melatonin and open the first four links in a background tabs. The search page becomes pretty unscrollable. Again, there's not perceivable degradation of user experience in Safari for this case.

I suspect the main reason that Safari stays responsive is that each background tab goes in its own process, whereas Chrome puts them all in the same process. If we're going to do that, then we need to invest in making it so that we do better CPU coordination between the tabs.

Throttling background tabs to 1% is a good initial improvement there. Long-term, Global Resource Coordinator might be a better solution that keeps background tab loading fast without degrading foreground tabs. In the meantime, should we consider tweaking our process logic?

Should this be higher than P3 given how bad the user experience is compared to at least one other browser and that opening tabs in the background isn't really a rare use case.

Comment 11 by ojan@chromium.org, Mar 13 2017

Ignore my last comment. I was actually just seeing another instance of issue 698556. If run in an incognito window, the experience is reasonably close to Safari. If I run in incognito with ghostery enabled, it's awful (e.g. >10 second janks trying to scroll foreground tab).

Comment 12 by ojan@chromium.org, Mar 13 2017

komoroske: I suggest you try your original repro steps in an incognito window. I'd guess one of your extensions is killing your perf. I filed issue 698556 to track that problem.

Comment 13 by ojan@chromium.org, Mar 13 2017

Blockedon: 698556
Labels: -Performance

Comment 15 by nduca@chromium.org, Apr 26 2017

Labels: Hotlist-GRC
Labels: -Performance-Network Performance-Browser Needs-Investigation
Status: Available (was: Untriaged)
Cc: -rsch...@chromium.org

Comment 18 by ojan@chromium.org, May 8 2018

Cc: -ojan@chromium.org
Status: Untriaged (was: Available)
Available, but no owner or component? Please find a component, as no one will ever find this without one.

Sign in to add a comment