bogdan gaza - understanding and optimizing for web performance
TRANSCRIPT
![Page 1: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/1.jpg)
Understanding and measuring web performance
Bogdan Gâza
CodeCamp NOV’12 Bogdan Gâza
Mechanic at
Monday, November 19, 12
![Page 2: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/2.jpg)
Agenda
What is
Measuring
Take aways
Bogdan Gâza
} web performance
CodeCamp NOV’12
Monday, November 19, 12
![Page 3: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/3.jpg)
Bogdan Gâza
Agenda
What is
Measuring
Take aways } web performance
CodeCamp NOV’12
Monday, November 19, 12
![Page 4: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/4.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/5.jpg)
Bogdan Gâza
Click Load
CodeCamp NOV’12
Monday, November 19, 12
![Page 6: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/6.jpg)
Bogdan Gâza
Click Load
CodeCamp NOV’12
Monday, November 19, 12
![Page 7: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/7.jpg)
Bogdan Gâza
Human perception of time is bothsubjective and variable
actual
expected
perceived
remembered
CodeCamp NOV’12
Monday, November 19, 12
![Page 8: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/8.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/9.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/10.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/11.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/12.jpg)
Bogdan Gâza
What is
Measuring
Take aways } web performance
Agenda
CodeCamp NOV’12
Monday, November 19, 12
![Page 13: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/13.jpg)
Bogdan Gâza
Click Load
Measuring web performance
CodeCamp NOV’12
Monday, November 19, 12
![Page 14: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/14.jpg)
Bogdan Gâza
Click Load
Short life of a http request
CodeCamp NOV’12
Monday, November 19, 12
![Page 15: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/15.jpg)
Bogdan Gâza
Click
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 16: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/16.jpg)
Bogdan Gâza
Click
Unload
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 17: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/17.jpg)
Bogdan Gâza
Click
Unload DNS
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 18: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/18.jpg)
Bogdan Gâza
Click
Unload DNS TCP
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 19: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/19.jpg)
Bogdan Gâza
Click
Unload DNS TCP REQUEST
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 20: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/20.jpg)
Bogdan Gâza
Click
Unload DNS TCP REQUEST RESPONSE
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 21: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/21.jpg)
Bogdan Gâza
PROCESSING ONLOAD
Load
REQUEST RESPONSE
CodeCamp NOV’12
Short life of a http request
Monday, November 19, 12
![Page 22: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/22.jpg)
Bogdan Gâza
Click Load
CodeCamp NOV’12
Monday, November 19, 12
![Page 23: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/23.jpg)
Bogdan Gâza
Click Load
clickToPageLoaded
CodeCamp NOV’12
Monday, November 19, 12
![Page 24: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/24.jpg)
Bogdan Gâza
Click ?
Key metrics
CodeCamp NOV’12
Monday, November 19, 12
![Page 25: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/25.jpg)
Bogdan Gâza
Key metrics
Click
Unload DNS TCP REQUEST RESPONSE
Time to First Byte
CodeCamp NOV’12
Monday, November 19, 12
![Page 26: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/26.jpg)
Bogdan Gâza
PROCESSING ONLOAD
Load
REQUEST RESPONSE
Render Start Time
Key metrics
CodeCamp NOV’12
Monday, November 19, 12
![Page 27: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/27.jpg)
Bogdan Gâza
PROCESSING ONLOAD
Load
REQUEST RESPONSE
DomContentLoaded
Key metrics
CodeCamp NOV’12
Monday, November 19, 12
![Page 28: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/28.jpg)
Bogdan Gâza
PROCESSING ONLOADREQUEST RESPONSE
Page LoadedTime
Key metrics
Load
CodeCamp NOV’12
Monday, November 19, 12
![Page 29: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/29.jpg)
Bogdan Gâza
Click
High Level Metrics
Load BusinessRelevantEvent
clickTo BusinessRelevantEvent
aboveTheFold
FirstClick
FirstScroll
CodeCamp NOV’12
Monday, November 19, 12
![Page 30: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/30.jpg)
Bogdan Gâza
High Level Metrics
CodeCamp NOV’12
clickToFirstTweet
Monday, November 19, 12
![Page 31: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/31.jpg)
Aggregation
Bogdan Gâza
AVG
Average is not always relevant
CodeCamp NOV’12
Monday, November 19, 12
![Page 32: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/32.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/33.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/34.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/35.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/36.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/37.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/38.jpg)
Bogdan Gâza
Measuring web performance using Navigation Timings
CodeCamp NOV’12
Monday, November 19, 12
![Page 39: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/39.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/40.jpg)
Measuring web performance using Browser Extensions
Bogdan GâzaCodeCamp NOV’12
Monday, November 19, 12
![Page 41: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/41.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/42.jpg)
Bogdan Gâza
Measuring web performance using a web server mod
Web server
CodeCamp NOV’12
Monday, November 19, 12
![Page 43: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/43.jpg)
Bogdan Gâza
Measuring web performance using a web server mod
Web server
Performance module
CodeCamp NOV’12
Monday, November 19, 12
![Page 44: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/44.jpg)
Bogdan Gâza
Measuring web performance using a web server mod
Web server
Performance module
CodeCamp NOV’12
Monday, November 19, 12
![Page 45: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/45.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/46.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/47.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/48.jpg)
Bogdan Gâza
Net
wor
k Web app
CodeCamp NOV’12
Measuring web performance using network sniffing
Monday, November 19, 12
![Page 49: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/49.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/50.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/51.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/52.jpg)
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: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/53.jpg)
Bogdan Gâza
Q/A
CodeCamp NOV’12
Monday, November 19, 12
![Page 54: Bogdan Gaza - Understanding and Optimizing for Web Performance](https://reader035.vdocuments.net/reader035/viewer/2022070323/5599c3651a28abf3168b471a/html5/thumbnails/54.jpg)
Bogdan Gâza
Thanks!
CodeCamp NOV’12
Monday, November 19, 12