Predicting user activity to make the web fast presentation
Predicting User Activity to Make The Web Fast Velocity Conference 2012 Arvind Jain and Dominic Hamon Google
How fast is the web today?● Chrome ~ 2.3s/5.4s page load time (median/mean)● Google Analytics ~ 2.9s/6.9s page load time (median/mean)● Mobile ~ 4.3s/10.2s page load time (median/mean) http://analytics.blogspot.com/2012/04/global-site-speed-overview-how-fast-are.html
Web page size over time http://httparchive.org/
Making the web fast● Faster browsers● Faster networks● Faster hardware● Faster pagesBut not enough to make the web Instant...
The time between requests● ~ 3 seconds to type a URL● ~ 15 seconds to select a search result● Plenty of idle time● Why not use it?
Predict and Prerender● Predict user navigation or follow advice from page <link rel=prerender>● Fetch all resources for a page● Render to a hidden tab● Swap in when user navigates
Chrome Omnibox Prerendering● Already provide suggestions to the user● Opportunity to learn browsing behaviour● Ability to develop good prediction model● Little contention for resources
Implementation details● Track whether the user takes a suggestion● Map users text input to suggestion and hit/miss counts● Given user input and suggestion, calculate confidence C: ○ C = H / (H + M) where H is the hit count, M is the miss count
Implementation example● User types c● Suggestions are: ○ www.cnn.com ○ comcast.net● User types n● Omnibox shows cn● Suggestion is www.cnn.com● User selects www.cnn.com
Key results● Coverage ○ Almost a third of Omnibox navigations are prerendered● Accuracy ○ About 90% of those prerenders are used● Instant ○ Between 15% and 20% of Omnibox navigations are instant (<10 ms)● Median time saved ○ ~1 second (>40%) per Omnibox navigation
Total time saved per day Omnibox: Over 10 years Search: Over 20 years
Why should you care?● Your site will be prerendered at some point by some users● Check your site is compatible● Page Visibility API● Consider <link rel=prerender> for your own site https://developers.google.com/chrome/whitepapers/prerender http://prerender-test.appspot.com/