In his presentation at the Google Chrome Dev Summit in Mountain View CA, Ilya Grigorik walked through new improvements in Chrome to speed up Internet connections and latency. Here are my notes from his talk:
- What are the bottlenecks on Web performance? Where do we spend our time? 70% of the time we are blocked on the network. Then Javascript, paint, etc. blocks us.
- Page loads are network/latency bound but we can still improve things.
- Chrome does a number of things behind the scenes. The asynchronous DNS resolver gives the browser control to find the right servers instead relying on the OS.
- Chrome's new resource scheduler optimizes for perceived performance. Speed index has been optimized over Page Load. A lot of pages were competing for for downloads so the new scheduler only downloads ten images in parallel. In most cases opening more than that slows down performance. Don't overshard your sites.
- SPDY has been made even faster using priorities in the resource scheduler.
- Version 30 of Chrome improved onLoad speeds 10% for sites in the "tail" that use specific techniques to build sites. This is free performance for sites.
- Simple cache on Android avoids context switches and allows most requests to get to get faster. This has improved all http transfers by 10%. It removes extra latency at the start of each request.
- Preresolve, prerender, and prefetch are being improved. These fetch resources before they are needed but if someone switched pages these background requests would be canceled. Prefetch will no longer be canceled on navigation.
- Think of SPDY as an experimental testbed for HTTP 2.0. It will be switched HTTP 2.0 when it is ready. SPDY provided 20-40% improvements compared to https. You can use SPDY today on most servers.
- QUIC is a new experimental protocol that tries to build a better transport on top of UDP to eliminate latency. It's the next set of explorations after SPDY.
- QUIC and SPDY are intended to make the Internet faster: it may become a new standard or the best ideas may get adopting in existing standards. No matter which happens, users win with a faster Web.
- Chrome Data Compression on Android & iOS compresses JPGs to WebP, applies gzip, and runs over SPDY. It also goes through a secure tunnel to encrypt your data. Chrome does not render pages on the server. It just modifies & optimizes assets as they are delivered.
- Use the X-Forwarded-For header for geo-targeting to get access to user vs. proxy server information.
- Web socket compression is coming in Chrome 32.
- Navigation Timing & Google Analytics can provide network information on top level pages. Resource Timing in Chrome gives you complete timing information for all the resources in a document.