web performance group @ meetup 1 web performance 101 jeremy solarz @jeremysolarz

29
Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Upload: madeline-mills

Post on 27-Mar-2015

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

1

Web Performance 101

Jeremy Solarz

@jeremysolarz

Page 2: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

2

What next?

• What is “Web Performance”

• Money ≠ Performance?

• Experiments

• Where is the time?

• Follow the Rules!

• Toolbelt

Page 3: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

3

What is performance

for the JavaScript

folks…

Stoyan Stefanov,

JSMentors

http://velocityconf.com/velocity2010/public/schedule/detail/13019

Page 4: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

4

What means slow

• Pain = slow, Study form User Interface Engineering

http://www.uie.com/articles/download_time/

• More on that at…

http://www.phpied.com/psychology-of-performance/

Page 5: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

5

What’s “Good Performance”

• 0.1 seconds, instantaneous response

• 1 second keeps the user's flow of thought seamless.

• 10 seconds keeps the user's attention.

• Compared to “Blink of an eye”: 0.3 – 0.4s

http://www.useit.com/alertbox/response-times.html

Page 6: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

6

Tip

• Progressive Rendering

Part 1

Part 2 Part 3

Page 7: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

7

Money ≠ Performance?

Page 11: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

11

What does this mean?

• Losing Visitors

• Losing Sales

• Losing Ad-revenue

• Wasting SEO/SEM effort

• Much more $$$ on bandwidth and servers

Page 12: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

12

Example

• “A 1-second delay in page load time

equals 11% fewer page views, a 16% decrease in customer satisfaction,

and 7% loss in conversions”

Aberdeen Group

http://www.aberdeen.com/Aberdeen-Library/5136/RA-performance-web-application.aspx

Page 13: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

13

What MS did..

• Artificial 1s delay = 2.8% reduction in revenue/user (Bing)

http://velocityconf.com/velocity2009/public/schedule/detail/8523

Disti

nct

Quer

ies/

User

Quer

yRe

finem

ent

Reve

nue/

User

Any C

licks

Satis

facti

on

Tim

e to

Clic

k(in

crea

se in

ms)

50ms - - - - - -200ms - - - -0.3% -0.4% 500500ms - -0.6% -1.2% -1.0% -0.9% 1200

1000ms -0.7% -0.9% -2.8% -1.9% -1.6% 19002000ms -1.8% -2.1% -4.3% -4.4% -3.8% 3100

Page 14: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

14

What Google did…d

ail

y s

ea

rch

es

pe

r u

se

r re

lati

ve

to

co

ntr

ol

w k1 w k2 w k3 w k4 w k5 w k6

-1%

-0.8

%-0

.6%

-0.4

%-0

.2%

0%

0.2

%

2 0 0 m s d e la y4 0 0 m s d e la y

a c tua ltre nd

Im p a c t o f P o s t-he a d e r D e la ys O ve r Tim e

Page 15: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

15

Where is the time?

• 80% of the page load time is spent outside the data centre!!!

Steve Souders “High-Performance Websites

Page 17: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

17

Follow the Rules!

Page 18: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

18

Gooles Rules• Avoid bad requests • Avoid CSS expressions • Combine external CSS • Combine external JavaScript • Defer loading of JavaScript • Enable compression • Leverage browser caching • Leverage proxy caching • Minify CSS • Minify HTML • Minify JavaScript • Minimize request size • Minimize DNS lookups • Minimize redirects

• Optimize images • Optimize the order of styles

and scripts • Parallelize downloads across

hostnames • Put CSS in the document head • Remove unused CSS • Serve resources from a

consistent URL • Serve scaled images • Serve static content from a

cookieless domain • Specify a character set early • Specify image dimensions • Use efficient CSS selectors

http://code.google.com/speed/page-speed/docs/rules_intro.html

Page 19: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

19

Yahoo’s Rules• Minimize HTTP Requests • Use a Content Delivery Network • Add an Expires or a Cache-• Control Header • Gzip Components • Put StyleSheets at the Top • Put Scripts at the Bottom • Avoid CSS Expressions • Make JavaScript and CSS • External • Reduce DNS Lookups • Minify JavaScript and CSS • Avoid Redirects • Remove Duplicate Scripts

• Configure ETags • Make AJAX Cacheable • Use GET for AJAX Requests • Reduce the Number of DOM

Elements • No 404s • Reduce Cookie Size • Use Cookie-Free Domains for Components • Avoid Filters • Do Not Scale Images in HTML • Make favicon.ico Small &

Cacheable

http://developer.yahoo.com/yslow/help/#guidelines

Page 21: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

21

Impact?

• Your page download times will drop by ~50%

Page 22: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

22

Toolbelt

Page 23: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

23

Client-side

• ySlow (Firefox)

• PageSpeed (Firefox)

• Firebug (Firefox)

• HTTPWatch (Firefox & IE)

• Dynatrace Ajax Edition (IE only, Firefox)

Page 24: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

24

Check first

• Analysis the waterfall graph – Look for render start time – Script blocking – # objects, http://mir.aculo.us/dom-monster/

• Headers– Not Gzip’d – No Expires or Cache Control Headers – 2 seconds Keep-Alive??

Page 26: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

26

Out of the box

• Google Mod_pagespeed - http://code.google.com/speed/pagespeed/docs/module.html

• Aptimize – www.aptimize.com • Webo - http://www.webogroup.com/home/site-

speedup/ • Strangeloop -

http://www.strangeloopnetworks.com/ • Blaze IO - http://www.blaze.io/ • DSA “Dynamic Site Acceleration” – Cotendo,

Akamai, Limelight, CDNetworks etc

Page 27: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

27

Reference

• Steve Souder’s blog, http://www.stevesouders.com/blog/ • http://www.phpied.com/category/performance/, Stoyan Stefanov• WebPerformanceToday, http://www.webperformancetoday.com/ • Performance Planet (WebPerf Blogs) - http://www.perfplanet.com/ • Sergey Chernvshev, http://www.sergeychernyshev.com/talks/

Web_Performance • http://zoompf.com/blog, Billy Hoffman• http://developer.yahoo.com/performance/ Yahoo Performance Team• http://velocityconf.com, Conference about performance => Velocity

(awesome slides + videos for free…)• TheOpsMgr Blog - http://theopsmgr.seriticonsulting.com/ • UK Broadband stats -

http://www.broadbandspeedchecker.co.uk/speed_ratings.aspx • Browser Usage Stats - http://www.w3counter.com/globalstats.php • http://www.webperformancetoday.com/2010/06/15/everything-you-wanted-

to-know-about-web-performance/, More stats about impact of Web Performance

Page 28: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

28

?

Page 29: Web Performance Group @ Meetup 1 Web Performance 101 Jeremy Solarz @jeremysolarz

Web Performance Group @ Meetup

29

Last words

• Please review the Meetup on Meetup.com

• Next Meetup => Thursday, Oktober 6th 2011