diff options
author | jdduke <jdduke@chromium.org> | 2015-02-04 22:27:13 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-02-05 06:28:20 +0000 |
commit | 94ae1f37922badae0012395018c23342f33d13b7 (patch) | |
tree | c7546b7531f31a7307c9a2aeb1f05728d9ed8aaf /components/copresence/test/audio_test_support.h | |
parent | ce4c9f14d7e5efb61c2eab7d695f0f4b831543e7 (diff) | |
download | chromium_src-94ae1f37922badae0012395018c23342f33d13b7.zip chromium_src-94ae1f37922badae0012395018c23342f33d13b7.tar.gz chromium_src-94ae1f37922badae0012395018c23342f33d13b7.tar.bz2 |
Throttle resource message requests during user interaction
Resource message requests can be relatively expensive, particularly in
the induced work on the browser IO thread. Currently, there is no bound
on the rate with which such requests are dispatched from the renderer.
This leads to situations where the browser IO thread is flooded with
requests, potentially causing scroll jank and otherwise undesirable
stalls in the browser pipeline.
Introduce a ResourceMessageThrottler which intercepts and defers a given
resource message stream, depending on the state of the RendererScheduler.
When the RendererScheduler indicates that high priority work is
imminent/likely, requests will be throttled according to a configurable
dispatch rate.
Hook this throttling mechanism up to the ResourceDispatcher, limiting
the number of resource message requests/second during user interaction
to 180 (3 per frame at 60 fps) on Android, and 480 on desktop.
See goo.gl/H42AgQ for more design details.
Note: This change originally landed in
https://crrev.com/acfb4199abf841a1577c3968579c43b0232a53b7, but was
reverted due to issues with enforced ThreadChecker validation in
RendererSchedulerImpl. The ThreadChecker validation fix has been split
into a separate patch.
BUG=440037,402136
Review URL: https://codereview.chromium.org/847883002
Cr-Commit-Position: refs/heads/master@{#314767}
Diffstat (limited to 'components/copresence/test/audio_test_support.h')
0 files changed, 0 insertions, 0 deletions