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

Issue 811464 link

Starred by 1 user

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Android , Windows , iOS , Chrome , Mac
Pri: 3
Type: Bug



Sign in to add a comment

Start Chrome-wide MemoryPressureBasedSourceBufferGC experiment

Project Member Reported by dskiba@chromium.org, Feb 12 2018

Issue description

Currently Chrome buffers up to 150MiB of video and 12MiB of audio when playing Youtube videos.

This is problematic on low-end Android devices and can get Chrome killed by the OS (b/72526988).

But it turned out there is a feature that can help: MemoryPressureBasedSourceBufferGC. It was added by servolk@ a year ago [1], and demonstrated promising results.

Let's start a finch experiment, with the ultimate goal of permanently enabling the feature (at least on low-end devices).




[1] https://docs.google.com/document/d/1QXx61ZA-p-MVU3Z-6m-ILSvkUCUsu4vOtAe9qEFsnmo/edit#heading=h.307scku45jg6

 

Comment 1 by dskiba@chromium.org, Feb 12 2018

Cc: haraken@chromium.org
Labels: OS-Android OS-Chrome OS-iOS OS-Mac OS-Windows
The feature relies on pressure signals, which are supported everywhere except for Linux? +haraken@ to confirm.

Comment 2 by dskiba@chromium.org, Feb 12 2018

Components: Blink>Media>Session
Status: Available (was: Untriaged)
Cc: sebmarchand@chromium.org
On Desktop, memory pressure signals are inconsistent, and generally not very useful right now. +sebmarchand, who's working on creating useful windows memory pressure signals. I believe no one is working on macOS signals.
Components: Internals>Media>Source

Comment 5 by dskiba@chromium.org, Feb 13 2018

Components: -Blink>Media>Session
OK, so let's first do the experiment on Android only.

Sergey, do you want to take this?
Well, I can give it a try, but it won't be my highest priority atm. Also, I don't have any experience with Finch experiments, where do I start to set up a new experiment?

Comment 7 by dskiba@chromium.org, Feb 15 2018

Cc: primiano@chromium.org

Comment 8 by dskiba@chromium.org, Feb 15 2018

I think the process is not that complicated on dev/canary - basically we can "just" go and enable the experiment, but we need to have metrics ready.

We have metrics for total renderer memory, so we can see improvement there. But do we have metrics that would tell us how many times the feature caused additional buffering when user went backwards in the playback?

BTW there seems to be an issue in how reliable memory pressure signals are on Android, see b/73310928. It looks like the issue could be fixed on Chrome side though (which experiment could only be done in M66+).

Comment 9 by dskiba@chromium.org, Feb 21 2018

dalecurtis@, servolk@, do we have UMA metrics that tell us how often users go back in the playback? How hard it would be to add such metric?

Ideally we need something like "how often users go back and have to wait for data". With such metric we could trivially evaluate impact of MemoryPressureBasedSourceBufferGC feature.
AFAIK there's no such metric
Tokyo memory team is happy to help this.

keishi or tasak: Would you help servolk to add the UMA and start a Finch experiment?


Cc: -haraken@chromium.org keishi@chromium.org tasak@google.com
Cc: haraken@chromium.org
haraken@ was your team still looking at relaunching this experiment?
Note that the memory pressure signals on desktop (Windows at least) are still pretty inefficient and inconsistent across platform (you can't really compare the MemoryPressureLevel values [1] between different platforms as they don't measure the same thing).

There's still no ETA for the better memory pressure signal on desktop (this is tracked on crbug.com/771478).


[1] https://cs.chromium.org/chromium/src/base/memory/memory_pressure_listener.h?l=50&rcl=d33d841ba9903ec8ad2a6874b181cfa2efe260ca 
dskiba left the team and no one is looking at this.

For now I think we can focus on enabling the feature on low-end Android (where memory pressure is (not good but) more reliable than desktops).

I don't think it's terrible to enable the feature on desktops because it would be better than having nothing, but that would be a separate discussion.

Dale: Would it be possible to find an eng in your team?

Owner: dalecur...@chromium.org
Status: Assigned (was: Available)
Yup I'll take it.
Owner: sande...@chromium.org
Dan said he had bandwidth to pick this up.
Labels: M-69

Sign in to add a comment