more bandwidth, but you cannot have lower latency • Mitigate latency effects by parallelizing across multiple TCP sockets • But with HTTP/2, this rule is turned on its head http://www.soasta.com/blog/more-bandwidth-isnt-a-magic-bullet-for-web-performance/
API allows you to set performance timeline marks within your code • performance.mark(“name”) • performance.measure(“name”, “start_mark”, “end_mark”) http://www.html5rocks.com/en/tutorials/webperformance/usertiming/
RUM to measure latency from user to multiple POPs • Pick POP based on lowest latency • Adapt to changes in network topology http://www.slideshare.net/rmaheshw/velocity-2015-pops-and-rum
mentioned in URL • This could help reduce latency when the request shows up — for first page views at least • Your DNS TTL needs to be long enough to survive past a page load
will be required later on • Browser can start downloading in the background if it has nothing better to do with its resources • Resource needs to have suitable cache headers
is likely to be requested by the user • Browser downloads page, and all its resources, renders it, executes JavaScript and fires the onload event. • It’s like opening the page in a hidden Tab
page just shows up (< 5ms latency) • This is actually faster than switching tabs in the browser • The onVisibilityChange event fires and visibilityState changes from “prerender” to “visible” or “hidden”
be requested using GET • The page should not require Authentication (401 response) • The calling page should NOT change the state of Cookies after the pre-rendered page has been requested
Do NOT use domain sharding • Do NOT use sprites • Do use Stream Multiplexing with Priorities • Do use Server Push http://chimera.labs.oreilly.com/books/1230000000545/ch12.html
memory savings” 2.6 Use 4:2:0 Chroma Subsampling Chroma Subsampling takes advantage of the fact that the human visual system is less sensitive to changes in colour than luminance http://en.wikipedia.org/wiki/Chroma_subsampling
a read of invalidated properties forces a layout • This has a huge CPU impact • Read before write • Batch update • Move operations into the HEAD Amiya Gupta @ Velocity 2015