Bug 155038

Summary: Max out timer throttling immediately for pre-render pages
Product: WebKit Reporter: Gavin Barraclough <barraclough>
Component: WebKit Misc.Assignee: Gavin Barraclough <barraclough>
Status: RESOLVED FIXED    
Severity: Normal CC: cdumez
Priority: P2    
Version: Other   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Fix cdumez: review+

Description Gavin Barraclough 2016-03-04 13:31:47 PST
If a hidden page has never been visible, no need to gently ramp into throttling - treat it the same as a page that has been viewed, but has been in the background for a long time.

Why? The throttling mechanism scales with the amount of background work by shifting the limit - once all background pages have maxed out the limit, they should no longer be burden of the system. However the mechanism doesn't currently do anything to accelerate towards the limit based on the number of pages in the ramp up phase, and ramp up duration is proportional to limit (so ramping up to a high limit takes a long time). So if you quickly create a large number of hidden pages the system may be under excessive load for a while, as we slowly ramp up to a limit that will adequately constrain resource consumption. In cases where a large number of hidden pages are rapidly generated, many likely remain in the pre-render state, so this mitigation should typically help.
Comment 1 Gavin Barraclough 2016-03-04 13:41:10 PST
Created attachment 273034 [details]
Fix
Comment 2 Chris Dumez 2016-03-04 13:51:52 PST
Comment on attachment 273034 [details]
Fix

r=me
Comment 3 Gavin Barraclough 2016-03-04 13:56:49 PST
Transmitting file data ..
Committed revision 197588.