29
Waterfall AntiPatterns Google Developers Live June 13, 2013 Rick Viscomi Web Developer, YouTube

Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Embed Size (px)

DESCRIPTION

You've been asked to investigate why your web site is loading slowly. You've heard of WebPagetest.org so you enter the URL and run a test. What appears next is a colorful chart that looks like a Dr. Seuss illustration. Some bars are long, some are short. Some bars are blue, some are green. "That's nice," you say to yourself, wondering what to do next. It looks benign, innocently simple. But you know it holds many secrets. The waterfall chart is a mysterious force to some developers. Performance gurus seem to be able to divine the ailments of a slow site at one quick glance. "How?" you wonder. The reality is that anyone can read a waterfall chart - if they know that they are looking for. This presentation will bestow upon you the ability to recognize specific patterns in a waterfall chart, patterns which are the signs of a slow site. Using these newfound skills, you will become that performance guru and everyone will rejoice. Presented on Google Developers Live on June 13, 2013. https://developers.google.com/live/shows/779042419

Citation preview

Page 1: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Waterfall AntiPatterns

Google Developers LiveJune 13, 2013

Rick ViscomiWeb Developer, YouTube

Page 2: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Web Performance

Page 4: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

1 2 3 4 5 6 7 8 9

9 runs

Median Selection

1 2 3 4 5 6 7 8 9 10

10 runs

Page 5: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

1 2 3 4 5 6 7 8 9

9 runs

Median Selection

1 2 3 4 5 6 7 8 9 10

10 runs

Page 8: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Waterfall AntiPatterns

Page 9: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Anatomy of a Request

● DNS Lookup● Initial Connection● SSL Negotiation● TTFB● Content Download

Page 10: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

HTTP Responses: Redirects

● 301 Moved Permanently● 302 Found

Page 11: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

HTTP Responses: Not Modified

● Conditional GET

● Cache static content with long TTL○ Cache-Control: max-age=31536000

Last-Modified: Thu, 13 Jun 2013 15:17:34 GMT

● Cache busting○ style_20130614.css

Page 12: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

HTTP Responses: Errors

● 404 Not Found

Extra Credit: What happened here?

Page 14: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Navigation Timing

● domContentLoaded* (document.ready)● Start Render (first paint)● loadEvent* (onload)● Document Complete (loadEventStart)* Chrome and Firefox only

Page 15: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Navigation Timing

Page 16: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Navigation Timing

Page 17: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Navigation Timing

Page 18: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Request Serialization

● "stair step" pattern

● many requests

● few connections○ 2 - 6

● HTTP 2.0?

Page 19: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Request Serialization

Connection View

cssjavascriptimagesflash

Page 20: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Request Serialization

Connection View

cssjavascriptimagesflash

Page 21: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Closed Connections

● TCP overhead

● Enable Keep-Alive

Page 23: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Summary

● waterfall slope● request components● HTTP responses

○ redirects○ conditional GETs○ errors

● page load events● request concurrency● network utilization

Page 24: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Preview: Worst of WebPagetest

● 46 requests○ 5 successful

● 21 seconds to Start Render

● 30% gzip savings

www.aplia.com

Page 25: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Preview: Worst of WebPagetest

● 443 requests

● 8,000 DOM elements

● 1.6 MB of JavaScript

● 75 unique domains

coder143.com

Page 26: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Preview: Worst of WebPagetest

● 2 MB page weight

● 26 second load time

● 17 second repeat view

www.taboradelaide.edu.au/

Page 27: Google Developers Live: Waterfall AntiPatterns - Web Performance Analysis

Preview: Worst of WebPagetest

● 1.4 seconds to first byte

● 4.3 seconds of orange

● 84% images or JS

comoeliminarlasestrias.org