understanding and measuring web performance

54
Understanding and measuring web performance Bogdan Gâza CodeCamp NOV’12 Bogdan Gâza Mechanic at Monday, November 19, 12

Upload: bogdan-gaza

Post on 17-May-2015

532 views

Category:

Documents


0 download

DESCRIPTION

Introduction to what web performance means and how it can be measured.

TRANSCRIPT

Page 1: Understanding and measuring web performance

Understanding and measuring web performance

Bogdan Gâza

CodeCamp NOV’12 Bogdan Gâza

Mechanic at

Monday, November 19, 12

Page 2: Understanding and measuring web performance

Agenda

What is

Measuring

Take aways

Bogdan Gâza

} web performance

CodeCamp NOV’12

Monday, November 19, 12

Page 3: Understanding and measuring web performance

Bogdan Gâza

Agenda

What is

Measuring

Take aways } web performance

CodeCamp NOV’12

Monday, November 19, 12

Page 4: Understanding and measuring web performance

Web performance is the time perceived by an user when loading a web resource.

Bogdan GâzaCodeCamp NOV’12

Monday, November 19, 12

Page 5: Understanding and measuring web performance

Bogdan Gâza

Click Load

CodeCamp NOV’12

Monday, November 19, 12

Page 6: Understanding and measuring web performance

Bogdan Gâza

Click Load

CodeCamp NOV’12

Monday, November 19, 12

Page 7: Understanding and measuring web performance

Bogdan Gâza

Human perception of time is bothsubjective and variable

actual

expected

perceived

remembered

CodeCamp NOV’12

Monday, November 19, 12

Page 8: Understanding and measuring web performance

Bogdan Gâza

Delay User reaction

0 - 100 ms Instant

0 - 300 ms Feels sluggish

0 - 1000 ms Machine is working

1s+ Mental context switch

10s+ I’ll come back later

Human perception of time is bothsubjective and variable

CodeCamp NOV’12

Monday, November 19, 12

Page 9: Understanding and measuring web performance

Bogdan Gâza

Delay User reaction

0 - 100 ms Instant

0 - 300 ms Feels sluggish

0 - 1000 ms Machine is working

1s+ Mental context switch

10s+ I’ll come back later

Human perception of time is bothsubjective and variable

CodeCamp NOV’12

Monday, November 19, 12

Page 10: Understanding and measuring web performance

Amazon TechO(n) Bogdan GâzaBogdan Gâza

DelayDistinct Queries Satisfaction

Time To Interaction

1000 ms - 0.7% -1.6% 1900 ms

2000 ms -1.8% -3.8% 3100ms

en.oreilly.com/velocity2009/public/schedule/detail/8523

Bing - negative impacts when adding delay

CodeCamp NOV’12

Monday, November 19, 12

Page 11: Understanding and measuring web performance

Amazon TechO(n) Bogdan GâzaBogdan Gâza

Importance of performance

Yahoo! - 400ms slower6% drop in full-page traffic

Firefox Download page

- 2.2s faster avg page load time

+15.4% more downloads

CodeCamp NOV’12

Monday, November 19, 12

Page 12: Understanding and measuring web performance

Bogdan Gâza

What is

Measuring

Take aways } web performance

Agenda

CodeCamp NOV’12

Monday, November 19, 12

Page 13: Understanding and measuring web performance

Bogdan Gâza

Click Load

Measuring web performance

CodeCamp NOV’12

Monday, November 19, 12

Page 14: Understanding and measuring web performance

Bogdan Gâza

Click Load

Short life of a http request

CodeCamp NOV’12

Monday, November 19, 12

Page 15: Understanding and measuring web performance

Bogdan Gâza

Click

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 16: Understanding and measuring web performance

Bogdan Gâza

Click

Unload

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 17: Understanding and measuring web performance

Bogdan Gâza

Click

Unload DNS

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 18: Understanding and measuring web performance

Bogdan Gâza

Click

Unload DNS TCP

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 19: Understanding and measuring web performance

Bogdan Gâza

Click

Unload DNS TCP REQUEST

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 20: Understanding and measuring web performance

Bogdan Gâza

Click

Unload DNS TCP REQUEST RESPONSE

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 21: Understanding and measuring web performance

Bogdan Gâza

PROCESSING ONLOAD

Load

REQUEST RESPONSE

CodeCamp NOV’12

Short life of a http request

Monday, November 19, 12

Page 22: Understanding and measuring web performance

Bogdan Gâza

Click Load

CodeCamp NOV’12

Monday, November 19, 12

Page 23: Understanding and measuring web performance

Bogdan Gâza

Click Load

clickToPageLoaded

CodeCamp NOV’12

Monday, November 19, 12

Page 24: Understanding and measuring web performance

Bogdan Gâza

Click ?

Key metrics

CodeCamp NOV’12

Monday, November 19, 12

Page 25: Understanding and measuring web performance

Bogdan Gâza

Key metrics

Click

Unload DNS TCP REQUEST RESPONSE

Time to First Byte

CodeCamp NOV’12

Monday, November 19, 12

Page 26: Understanding and measuring web performance

Bogdan Gâza

PROCESSING ONLOAD

Load

REQUEST RESPONSE

Render Start Time

Key metrics

CodeCamp NOV’12

Monday, November 19, 12

Page 27: Understanding and measuring web performance

Bogdan Gâza

PROCESSING ONLOAD

Load

REQUEST RESPONSE

DomContentLoaded

Key metrics

CodeCamp NOV’12

Monday, November 19, 12

Page 28: Understanding and measuring web performance

Bogdan Gâza

PROCESSING ONLOADREQUEST RESPONSE

Page LoadedTime

Key metrics

Load

CodeCamp NOV’12

Monday, November 19, 12

Page 29: Understanding and measuring web performance

Bogdan Gâza

Click

High Level Metrics

Load BusinessRelevantEvent

clickTo BusinessRelevantEvent

aboveTheFold

FirstClick

FirstScroll

CodeCamp NOV’12

Monday, November 19, 12

Page 30: Understanding and measuring web performance

Bogdan Gâza

High Level Metrics

CodeCamp NOV’12

clickToFirstTweet

Monday, November 19, 12

Page 31: Understanding and measuring web performance

Aggregation

Bogdan Gâza

AVG

Average is not always relevant

CodeCamp NOV’12

Monday, November 19, 12

Page 32: Understanding and measuring web performance

Context

Bogdan Gâza

Time of day Operating System

Browser Antivirus

Location Devise

Connection type Resolution

Latency ...

CodeCamp NOV’12

Monday, November 19, 12

Page 33: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance

Subjective (qualitative) Objective (quantitative)

Focus Groups JavaScript

Case Studies Navigation timings

Interviews Browser Extensions

... Web Server Mods

... Network sniffing

CodeCamp NOV’12

Monday, November 19, 12

Page 34: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using JavaScript

unLoadEventstart timestamp

Store start in a cookie

Load nextpage

loadEventstop timestamp

Send a beaconbeacon.gif?time=PLT

Page Load Time (PLT)

stop - start

CodeCamp NOV’12

Monday, November 19, 12

Page 35: Understanding and measuring web performance

Bogdan Gâza

Pro’s Con’s

Simple JavaScript

Simple Custom Metrics Accurate for the 2nd page

... Observer effect

Measuring web performance using JavaScript

CodeCamp NOV’12

Monday, November 19, 12

Page 36: Understanding and measuring web performance

Bogdan Gâza

Click

Unload DNS TCP REQUEST RESPONSE

Measuring web performance using Navigation Timings

navigationStart

domainLookupStart

domainLookupEnd

connectStart

connectEnd

...

CodeCamp NOV’12

Monday, November 19, 12

Page 37: Understanding and measuring web performance

Bogdan Gâza

PROCESSING ONLOAD

Load

REQUEST RESPONSE

Measuring web performance using Navigation Timings

domContentLoaded

domLoadComplete

CodeCamp NOV’12

Monday, November 19, 12

Page 38: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using Navigation Timings

CodeCamp NOV’12

Monday, November 19, 12

Page 39: Understanding and measuring web performance

Bogdan Gâza

Pro’s Con’s

Simple JavaScript

Lots of metrics Page Level Only

Accurate Needs browser support

Measuring web performance using Navigation Timings

CodeCamp NOV’12

Monday, November 19, 12

Page 40: Understanding and measuring web performance

Measuring web performance using Browser Extensions

Bogdan GâzaCodeCamp NOV’12

Monday, November 19, 12

Page 41: Understanding and measuring web performance

Bogdan Gâza

Pro’s Con’s

Very complete metrics Getting users to install it

No JavaScript Not natively cross browser

Not only page level ...

Measuring web performance using Browser Extension

CodeCamp NOV’12

Monday, November 19, 12

Page 42: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using a web server mod

Web server

CodeCamp NOV’12

Monday, November 19, 12

Page 43: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using a web server mod

Web server

Performance module

CodeCamp NOV’12

Monday, November 19, 12

Page 44: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using a web server mod

Web server

Performance module

CodeCamp NOV’12

Monday, November 19, 12

Page 45: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using a web server mod

Web server

Performance moduleRegisters

timestamps

CodeCamp NOV’12

Monday, November 19, 12

Page 46: Understanding and measuring web performance

Bogdan Gâza

Measuring web performance using a web server mod

Web server

Performance moduleRegisters

timestamps

Collects &aggregates

CodeCamp NOV’12

Monday, November 19, 12

Page 47: Understanding and measuring web performance

Bogdan Gâza

Pro’s Con’s

Good for measuring back-end performance Limited metrics

Can be easy to deployPossible web server

performance hits

... Concept of a page is problematic

Measuring web performance using Web Server mod

CodeCamp NOV’12

Monday, November 19, 12

Page 48: Understanding and measuring web performance

Bogdan Gâza

Net

wor

k Web app

CodeCamp NOV’12

Measuring web performance using network sniffing

Monday, November 19, 12

Page 49: Understanding and measuring web performance

Bogdan Gâza

Web app

Web perf applianceNet

wor

k

CodeCamp NOV’12

Measuring web performance using network sniffing

Monday, November 19, 12

Page 50: Understanding and measuring web performance

Bogdan Gâza

Web app

Web perf appliance

Promiscuous mode

Assembles packets

Assembles http into pages

Collects data

Net

wor

k

CodeCamp NOV’12

Measuring web performance using network sniffing

Monday, November 19, 12

Page 51: Understanding and measuring web performance

Bogdan Gâza

Pro’s Con’s

No observer effect Limited metrics

Used in appliance basedsolutions Not cloud friendly

... Concept of a page is problematic

Measuring web performance using network sniffing

CodeCamp NOV’12

Monday, November 19, 12

Page 52: Understanding and measuring web performance

Bogdan Gâza

Take aways

Performance is subjective, context is critical

Observations vs Experiments

W3C Nav Timings

Speed (latency) an important feature

CodeCamp NOV’12

Monday, November 19, 12

Page 53: Understanding and measuring web performance

Bogdan Gâza

Q/A

CodeCamp NOV’12

Monday, November 19, 12

Page 54: Understanding and measuring web performance

Bogdan Gâza

Thanks!

CodeCamp NOV’12

Monday, November 19, 12