the web we weave :: how web developers think about performance

101
The Web We Weave How Web Developers think about Performance Oliver Tse October 29, 2015

Upload: oliver-tse

Post on 13-Apr-2017

208 views

Category:

Software


0 download

TRANSCRIPT

Page 1: The Web We Weave :: How Web Developers Think About Performance

The Web We WeaveHow Web Developers think about Performance

Oliver TseOctober 29, 2015

Page 2: The Web We Weave :: How Web Developers Think About Performance

Who Am I? Oliver Tse

Web Developer

Page 3: The Web We Weave :: How Web Developers Think About Performance

Main Objective

Page 4: The Web We Weave :: How Web Developers Think About Performance

Seriously… when you walk out… grok/do ● Performance is more about rendering than page load ● Use Webpagetest and Chrome’s Timeline to improve

performance ● Optimize areas where changes are large enough to be

noticeable

Page 5: The Web We Weave :: How Web Developers Think About Performance

What we’ll talk about1. Speed!2. “Client Render Time”3. Page load. It isn’t what you think.4. Enter Patrick Meenan5. Get. Do. 6. Page load redux7. All together now8. Best practices don’t guarantee best optimizations

Page 6: The Web We Weave :: How Web Developers Think About Performance

1Speed!

Page 7: The Web We Weave :: How Web Developers Think About Performance

What’s Fast?

Page 8: The Web We Weave :: How Web Developers Think About Performance

"Speed. I am speed... Faster than fast, quicker than quick." - Lightning McQueen

Page 9: The Web We Weave :: How Web Developers Think About Performance

Speed is always about time

*Objective time

How much time* does it take to do something?

Page 10: The Web We Weave :: How Web Developers Think About Performance

How fast can the fastest jet fly?

The SR-71 takes 64 minutes to fly from Los Angeles to Washington, DC.

1. That’s 2,300 miles.2. That’s 2,145 MPH Fast.

Page 11: The Web We Weave :: How Web Developers Think About Performance

How long does it take to...

● Get first byte?● load a page?● Render?● Paint?● Etc.

Page 12: The Web We Weave :: How Web Developers Think About Performance

2“Client Render Time”

Page 13: The Web We Weave :: How Web Developers Think About Performance

what’s that big blue bar?

Page 14: The Web We Weave :: How Web Developers Think About Performance

DefinitionFound on go/speedhelp

client_render_time: from receiving first byte of base page html data to page onload (loadEventEnd - responseStart)

Page 15: The Web We Weave :: How Web Developers Think About Performance

From w3c

Page 16: The Web We Weave :: How Web Developers Think About Performance

From me

Page 17: The Web We Weave :: How Web Developers Think About Performance

3Page load. It isn’t what

you think.

Page 18: The Web We Weave :: How Web Developers Think About Performance

Hypothesispage loaded* == Complete Page

*Page Load event fires

Page 19: The Web We Weave :: How Web Developers Think About Performance

So, at Page Load we see the complete page. Yeah!

Page 20: The Web We Weave :: How Web Developers Think About Performance

Nope

Page 21: The Web We Weave :: How Web Developers Think About Performance

You actually see this

Page 22: The Web We Weave :: How Web Developers Think About Performance

Or this

Page 23: The Web We Weave :: How Web Developers Think About Performance

Or worse

Page 24: The Web We Weave :: How Web Developers Think About Performance

Or even worse

Page 25: The Web We Weave :: How Web Developers Think About Performance

Why?

Page 26: The Web We Weave :: How Web Developers Think About Performance

Page load is all mostly about downloading stuff*

● JavaScript● Images● Fonts● HTML● CSS● etc.

*stuff == “assets”

Page 27: The Web We Weave :: How Web Developers Think About Performance

It’s not page complete

Page 28: The Web We Weave :: How Web Developers Think About Performance

It’s all about rendering

Page 29: The Web We Weave :: How Web Developers Think About Performance

4Enter Patrick

Meenan

Page 30: The Web We Weave :: How Web Developers Think About Performance

2008Patrick ( and AOL ) give us Webpagetest

Page 31: The Web We Weave :: How Web Developers Think About Performance

Performance is how much, how fast and when a page renders

Page 32: The Web We Weave :: How Web Developers Think About Performance
Page 33: The Web We Weave :: How Web Developers Think About Performance
Page 34: The Web We Weave :: How Web Developers Think About Performance
Page 35: The Web We Weave :: How Web Developers Think About Performance
Page 36: The Web We Weave :: How Web Developers Think About Performance

New metric!“Speed index”

Page 37: The Web We Weave :: How Web Developers Think About Performance

Speed Index The average time at which

visible parts of the page

are displayed

Page 38: The Web We Weave :: How Web Developers Think About Performance
Page 39: The Web We Weave :: How Web Developers Think About Performance

5Get. Do.

Page 40: The Web We Weave :: How Web Developers Think About Performance

Use the network to get stuffUse the main thread to do stuff

Page 41: The Web We Weave :: How Web Developers Think About Performance

Your browser uses a single thread to ● paint● render● execute JavaScript

This is called the “Main thread of execution”

Page 42: The Web We Weave :: How Web Developers Think About Performance

Together, the network and the thread look like this

Page 43: The Web We Weave :: How Web Developers Think About Performance

Voyager

Page 44: The Web We Weave :: How Web Developers Think About Performance

And Homepage

Page 45: The Web We Weave :: How Web Developers Think About Performance

And ConnectHub

Page 46: The Web We Weave :: How Web Developers Think About Performance

And Guest Homepage

Page 47: The Web We Weave :: How Web Developers Think About Performance

That was a lot of stuff!

Page 48: The Web We Weave :: How Web Developers Think About Performance

Chrome DevTools Timeline

Page 49: The Web We Weave :: How Web Developers Think About Performance

talk about them together.But first..

Page 50: The Web We Weave :: How Web Developers Think About Performance

6Page load redux

Page 51: The Web We Weave :: How Web Developers Think About Performance

“window.onload is not the best metric for measuring website speed”- Steve Souders

Page 52: The Web We Weave :: How Web Developers Think About Performance

What good is page load?

Page 53: The Web We Weave :: How Web Developers Think About Performance

Web Developers use page load as one of three markers*

*page events

Page 54: The Web We Weave :: How Web Developers Think About Performance

The three markers1. First paint2. DOMContentLoaded3. Page load

Page 55: The Web We Weave :: How Web Developers Think About Performance

First Paintfirst visible rendering of the page

Page 56: The Web We Weave :: How Web Developers Think About Performance

DOMContentLoadedCSSOM and DOM are ready and…

all synchronous JavaScript executed

Page 57: The Web We Weave :: How Web Developers Think About Performance

Page LoadAll assets downloaded ( without aid of JavaScript )

Page 58: The Web We Weave :: How Web Developers Think About Performance

At each marker, we ask what and how much is rendered

Page 59: The Web We Weave :: How Web Developers Think About Performance

7All together now

Page 60: The Web We Weave :: How Web Developers Think About Performance

Let’s look at ConnectHub( with a little help from Voyager web )

Page 61: The Web We Weave :: How Web Developers Think About Performance
Page 62: The Web We Weave :: How Web Developers Think About Performance
Page 63: The Web We Weave :: How Web Developers Think About Performance
Page 64: The Web We Weave :: How Web Developers Think About Performance

Notice plateaus

Page 65: The Web We Weave :: How Web Developers Think About Performance
Page 66: The Web We Weave :: How Web Developers Think About Performance

Plateaus are caused by activities in the main thread and in assets downloading

Page 67: The Web We Weave :: How Web Developers Think About Performance

The browser is doing work,but no rendering, no painting

User sees no change

Page 68: The Web We Weave :: How Web Developers Think About Performance
Page 69: The Web We Weave :: How Web Developers Think About Performance
Page 70: The Web We Weave :: How Web Developers Think About Performance
Page 71: The Web We Weave :: How Web Developers Think About Performance
Page 72: The Web We Weave :: How Web Developers Think About Performance
Page 73: The Web We Weave :: How Web Developers Think About Performance
Page 74: The Web We Weave :: How Web Developers Think About Performance
Page 75: The Web We Weave :: How Web Developers Think About Performance
Page 76: The Web We Weave :: How Web Developers Think About Performance
Page 77: The Web We Weave :: How Web Developers Think About Performance
Page 78: The Web We Weave :: How Web Developers Think About Performance
Page 79: The Web We Weave :: How Web Developers Think About Performance

55% of the main thread displays two ads

Page 80: The Web We Weave :: How Web Developers Think About Performance
Page 81: The Web We Weave :: How Web Developers Think About Performance

8Best practices don’t

guarantee best optimizations

Page 82: The Web We Weave :: How Web Developers Think About Performance

Ilya Grigorik

Page 83: The Web We Weave :: How Web Developers Think About Performance

Steve Souders

Page 84: The Web We Weave :: How Web Developers Think About Performance

LinkedIn site-speed experts

Page 85: The Web We Weave :: How Web Developers Think About Performance

Follow best practices or,bad things will happen.

Page 86: The Web We Weave :: How Web Developers Think About Performance

where you apply best practices is important

Page 87: The Web We Weave :: How Web Developers Think About Performance
Page 88: The Web We Weave :: How Web Developers Think About Performance
Page 89: The Web We Weave :: How Web Developers Think About Performance
Page 90: The Web We Weave :: How Web Developers Think About Performance
Page 91: The Web We Weave :: How Web Developers Think About Performance
Page 92: The Web We Weave :: How Web Developers Think About Performance
Page 93: The Web We Weave :: How Web Developers Think About Performance
Page 94: The Web We Weave :: How Web Developers Think About Performance

Without JavaScript, faster● First paint by 25%● DOMContentLoaded by 45%● Page load by 23%● Speed Index by 30% ( from 2.0s to 1.4s )

Page 95: The Web We Weave :: How Web Developers Think About Performance

what do you optimize?

Page 96: The Web We Weave :: How Web Developers Think About Performance

Optimize for the most impact

Page 97: The Web We Weave :: How Web Developers Think About Performance

The Weber-Fechner Law

Page 98: The Web We Weave :: How Web Developers Think About Performance

“In order for users to barely see a difference in time duration, it has to be changed by a minimum of 20%”

Page 99: The Web We Weave :: How Web Developers Think About Performance

Thank You!Have a nice day!

Page 100: The Web We Weave :: How Web Developers Think About Performance

Questions?

Page 101: The Web We Weave :: How Web Developers Think About Performance

Resourceshttp://www.smashingmagazine.com/2015/09/why-performance-matters-the-perception-of-time/

http://www.stevesouders.com/blog/2013/05/13/moving-beyond-window-onload/

Perf Shop Talk ( go/perfshoptalk )