Top Banner

of 134

London Meetup - Performance for Mortal Companies - JOSH-FINAL

Apr 08, 2018

Download

Documents

Strangeloop
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    1/134

    Web Performance Optimization (WPO)Web Content Optimization (WCO)Web Code Optimization (WCO)

    Web Transformation (WT)Front end performance Optimization (FEO)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    2/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 2

    Agenda

    IntroductionWhat is performance automation

    Basic terminology and concepts

    Automation at work

    Performance stats and Case Studies

    Market overview

    Q&A-

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    3/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 3

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    4/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 4

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    5/134

    Web Performance

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    6/134

    Making sites faster

    without changing code

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    7/134

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    8/134

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    9/134

    www.strangeloopnetworks.com 9 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 9

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    10/134

    www.strangeloopnetworks.com 10 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 10

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    11/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 11

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    12/134

    12 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 12

    Waterfall chart

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    13/134

    13 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 13

    Waterfall chartHTML

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    14/134

    14 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 14

    Waterfall chart

    Resources

    HTML

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    15/134

    15 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 15

    Waterfall chartStart

    RenderDocument

    CompleteFullyLoaded

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    16/134

    16 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 16

    Waterfall component breakdown

    DNSlookup

    DNS Lookup

    Takes one packet in eachdirection

    Time is limited to the latency ofthe connection(DSL/Cable/etc) for thesingle round trip

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    17/134

    17 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 17

    Waterfall component breakdown

    TCPConnectio

    nTCP Connection

    3 packets

    - Client Server (SYN)- Server Client (SYN/ACK)- Client Server (ACK)

    Time is limited to the latency ofthe connection(DSL/Cable/etc) for thesingle round trip

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    18/134

    18 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 18

    Time ToFirst

    ByteTime to First Byte

    Time from the request packet(usually 1) to the first packetof the response

    Includes the latency of theconnect ion(DSL/Cable/etc) for a singleround trip

    Also includes whatever serverthink time was involved ingenerating the response

    Waterfall component breakdown

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    19/134

    19 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 19

    ContentDownload

    Download

    Time it takes for the entirecontent of the response toget to the browser

    Mostly limited by the bandwidthlimit of the connection(DSL/Cable/etc)

    Waterfall component breakdown

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    20/134

    20 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 20

    First view vs Repeat View

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    21/134

    21 2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 21

    Concurrency

    Blocking

    Concurrent

    Concurrency

    Blocking script don't let thebrowser use available resources(network, connections, etc) tofetch more content from theserver

    The overall page load time andrender time are both affectednegatively)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    22/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 22

    Case Study: Automation in action

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    23/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 23

    Methodology

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    24/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 24

    Lets Automate

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    25/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 25

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    26/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 26

    A Few Points of Clarification

    Well use it to describe where performance painpoints are, but that doesnt mean the pageactually has these problems

    What were going to do:

    Not sogood(slow)

    Awesome(fast)

    Improve performance incrementally

    * The real Velocity site is somewhere in the middle!

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    27/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 27

    Performance Summary

    http://bit.ly/au01VY/

    http://bit.ly/au01VYhttp://www.webpagetest.org/result/100614_aacdab746259dd7c89dfe994c1997d3b/http://www.webpagetest.org/result/100614_aacdab746259dd7c89dfe994c1997d3b/http://bit.ly/au01VY
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    28/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 28

    Waterfall

    First View Repeat View

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    29/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 29

    Per Object

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    30/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 30

    Content Analysis by Type

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    31/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 31

    Content Analysis by Domain

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    32/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 32

    Show Me Where It Hurts

    Problem Analysis

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    33/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 33

    Performance Problems

    Too many connections (too much orange)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    34/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 34

    Too Many Connections

    97 Connections(almost one per request)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    35/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 35

    Too Many Connections

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    36/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 36

    Performance Problems

    Too many connections (too much orange)

    Too many bytes (too much blue)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    37/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 37

    Too Many Bytes

    By Type By Domain

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    38/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 38

    Performance Problems

    Too many connections (too much orange)

    Too many bytes (too much blue)

    Concurrency

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    39/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 39

    Concurrency

    Browsers can only open and use so manyconnections at once

    www.browserscope.org

    http://www.browserscope.org/http://www.browserscope.org/
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    40/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 40

    Performance Problems

    Too many connections (too much orange)

    Too many bytes (too much blue)

    Concurrency

    Bad Caching for repeat views

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    41/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 41

    Bad Repeat View

    Full Fetches

    Validation

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    42/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 42

    Bad Repeat ViewConnections Bytes

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    43/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 43

    Performance Problems

    Too many connections (too much orange)

    Too many bytes (too much blue)

    Concurrency

    Bad Caching for repeat views

    No CDN (the greens are too big)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    44/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 44

    The Green Problem #1: No CDNTTFB

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    45/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 45

    Performance Problems

    Too many connections (too much orange)

    Too many bytes (too much blue)

    Concurrency

    Bad Caching for repeat views

    No CDN (the greens are too big)

    Too Many Roundtrips (too many greens)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    46/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 46

    The Green Problem #2: Roundtrips

    First View Repeat View

    80Requests

    27 Requests

    78Requests

    14 Requests

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    47/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 47

    The Green Problem #2: Roundtrips

    Every fetch still pays the HTTP overhead penaltyTTFB is still a problem

    Exacerbated by concurrency issues

    Getting worse as number of objects per page

    grows Generally, the hardest problem to solve

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    48/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 48

    Performance Problems

    Too many connections

    Too many bytes (too much blue)

    Concurrency

    Bad Caching for repeat views

    No CDN (the greens are too big)

    Too Many Roundtrips (too many greens)

    Others

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    49/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 49

    Examples of Other Problems

    Blocking Javascript

    3rd party calls (http://stevesouders.com/p3pc/)

    http://stevesouders.com/p3pc/http://stevesouders.com/p3pc/
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    50/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 50

    Summary

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    51/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 51

    Lets Fix It!!

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    52/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 52

    Set-Up

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    53/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 53

    Testing Environment

    AutomationSERVICE (CLOUD)

    WebPageTest Client(East Coast)

    OReilly Datacenter(West Coast)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    54/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 54

    Acceleration Methodology

    S

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    55/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 55

    Stepwise Acceleration

    Start from the beginning and fix the easy stuff

    Step by step acceleration of the page

    Apply techniques/methods/etc and see the result

    Try to make it as fast as possible

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    56/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 56

    Step 1:

    Low Hanging Fruit

    K Ali

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    57/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 57

    Keep-Alive

    Solves the too-many connection problem (LessOrange!)

    Will help alleviate the TCP connection setupoverhead

    97Connections

    C i

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    58/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 58

    Compression

    Addresses the too-many-bytes problem (LessBlue!)

    Well compress textual content (html/css/etc)

    Not the only solution to less blue, but the easiest

    W bP T t

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    59/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 59

    WebPageTest

    http://bit.ly/cKkjGz

    B f d Aft

    http://bit.ly/cKkjGzhttp://bit.ly/cKkjGzhttp://bit.ly/cKkjGz
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    60/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 60

    Before and After

    ~17.8sec ~10.5sec

    Wh t W H l d K Ali

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    61/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 61

    What We Helped: Keep-Alive

    97 Connections 19 Connections

    Wh t W H l d C i

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    62/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 62

    What We Helped: Compression

    H Did W D ?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    63/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 63

    How Did We Do?

    Original

    KA+Comp

    First View

    Repeat View

    52%

    71%

    34%

    94%

    31%

    51%

    23%

    75%

    40%

    62%

    Improvement

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    64/134

    Before and after: Keep-alives & compressionhttp://www.youtube.com/watch?v=KPYBF41yiFw

    Pros and Cons

    http://www.youtube.com/watch?v=KPYBF41yiFwhttp://www.youtube.com/watch?v=KPYBF41yiFw
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    65/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 65

    Pros and Cons

    Pros

    Really easy to do

    Single configuration switches in servers, proxies,or load balancers

    Good benefit seen right away

    Cons

    Compression has processing overhead

    On their own theyre just not enough

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    66/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 66

    Step 2:

    Repeat View Problem

    Poor Client Side Caching

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    67/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 67

    Poor Client Side Caching

    Original

    KA+Comp

    Problem Still Exists

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    68/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 68

    Problem Still Exists

    ~6.2sec

    How Do We Get Better Caching

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    69/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 69

    How Do We Get Better Caching

    RFC 2616, Section 13

    Caching headers should be used on static (non-changing) objects, so they can be cachedbrowser-side

    And by intermediate caching proxies Validators are not enough

    WebPageTest

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    70/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 70

    WebPageTest

    http://bit.ly/aCP3iX

    Before and After

    http://bit.ly/aCP3iXhttp://bit.ly/aCP3iX
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    71/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 71

    Before and After

    ~6.2sec

    ~2.0sec

    How Did We Do?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    72/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 72

    How Did We Do?

    KA+Comp

    With Good

    Caching

    Repeat View 70% 42%67%

    Improvement

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    73/134

    Pros and Cons

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    74/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 74

    Pros and Cons

    Pros

    Good caching can have a major performanceimpact on repeat visits to a page

    Sometimes its easy to do

    Browsers generally pay attention (although

    interpretation may vary slightly)

    Cons

    The spec appears scary

    Invalidation and stale content

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    75/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 75

    Step 3:

    CDN

    What Does a CDN do?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    76/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 76

    What Does a CDN do?

    Global network of

    proxy caches

    Get cacheable

    content close tousers

    Reduce TTFB

    (smaller greens)

    TTFB Problem

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    77/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 77

    TTFB Problem

    WebPageTest

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    78/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 78

    WebPageTest

    http://bit.ly/a9ZJcF

    Before and After

    http://bit.ly/a9ZJcFhttp://bit.ly/a9ZJcF
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    79/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 79

    Before and After

    ~10.5sec ~8.3sec

    TTFB Savings

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    80/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 80

    TTFB Savings

    Per object TTFB savings of~50%

    How Did We Do?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    81/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 81

    How Did We Do?

    KA+Comp

    +CDN

    First View 21% 17%22%

    Improvement

    0.7 sec 2.3 sec 2.7 secSeconds Gained

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    82/134

    Before and after: Adding a CDN

    http://www.youtube.com/watch?v=BR5hO5rL8lE

    Pros and Cons

    http://www.youtube.com/watch?v=BR5hO5rL8lEhttp://www.youtube.com/watch?v=BR5hO5rL8lE
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    83/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 83

    Pros and Cons

    Pro

    Good mitigation of the TTFB problem

    Established industry: lots of vendors to choosefrom

    Cons

    Sometimes costly

    May require code change (CDNed objects shouldbe written to the CDN domain)

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    84/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 84

    Step 4:

    Steroids- the Hard Stuff

    We Can Get Better!

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    85/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 85

    We Can Get Better!

    Still too many roundtrips

    Still too many bytes

    Not Fast Enough!!

    What to do Next?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    86/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 86

    What to do Next?

    Reduce Roundtrips

    Combine images

    Combine JavaScript

    Combine CSS

    Reduce Payload even more Minify CSS and JavaScript Add Image Compression

    Increase Concurrency

    Add a couple of domains to the mix

    WebPageTest

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    87/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 87

    eb age es

    http://bit.ly/bbT3v4

    Before and After

    http://bit.ly/bbT3v4http://bit.ly/bbT3v4
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    88/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 88

    ~8.3sec

    ~3.8sec

    How Did We Do?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    89/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 89

    +CDN

    +Strangeloop

    First View 19% 30%54%

    Improvement

    0.5 sec 4.6 sec 4.1 sec

    45% 31%

    SecondsGained

    81 107

    11 37

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    90/134

    Before and after: The final, fastest version

    http://www.youtube.com/watch?v=IPn0T1UacIA

    Pros and Cons

    http://www.youtube.com/watch?v=IPn0T1UacIAhttp://www.youtube.com/watch?v=IPn0T1UacIA
  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    91/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 91

    Pros

    Most significant benefit for the hardest part of theacceleration lifecycle

    Address multiple performance points (somtimesmultiple ones with the same technique)

    Cons Its not easy

    Regression

    Different Browsers

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    92/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 92

    Different Browsers

    Chrom

    e9Ch

    rome

    10 Fire

    Fox3Fir

    eFox4 IE6 IE7 IE8

    Safari5 Safar

    i

    Mobile

    Flow

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    93/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 93

    Flow

    3.8 Seconds11 Roundtrips

    Conversion

    ? ? ?

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    94/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 94

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    95/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 95

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    96/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 96

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    97/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 97

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    98/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 98

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    99/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 99

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    100/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 100

    These stats dont apply to me.

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    101/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 101

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    102/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 102

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    103/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 103

    These stats dont apply to meeither.

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    104/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 104

    How to perform a 5-minutespeed/revenue benefitanalysis of your site

    Step 1

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    105/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 105

    Step 1

    Perform WebPagetests in IE7 and IE8.

    Calculate the load time difference as a

    percentage.

    Step 2

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    106/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 106

    Step 2

    Use Google Analytics to calculate yourcurrent order value per visit for IE7 and IE8.

    Step 3

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    107/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 107

    Step 3

    Determine your order value per visit, byconnection speed (cable, DSL, T1, dialup).

    Step 3 cont

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    108/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 108

    Step 3 con t

    Determine your order value per visit, byconnection speed (cable, DSL, T1, dialup).

    Step 4

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    109/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 109

    Step 4

    Correlate the results of steps 1 to 3 insimple graphs.

    Step 5

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    110/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 110

    Step 5

    Test your site to get a sense of how muchfaster it could be.

    strangeloopnetworks.com/test-your-website

    Step 6

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    111/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 111

    Step 6

    Compare these gains to your graphs fromstep 4.

    What lift can you anticipate in value pervisit?

    Caveats

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    112/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 112

    Correlation does not imply causation.

    Browser and connection speed might imply

    something about the buyer (i.e. s/he is moreaffluent) that is unrelated to the effects ofspeed.

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    113/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 113

    But this trend seems to hold

    true in the real world.

    Case study

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    114/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 114

    y

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    115/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 115

    How to be your companys in-house performance evangelist

    Th t t k 3 thi

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    116/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 116

    The average exec wants to know 3 things

    Whats in it for the company?

    Whats in it for me?

    How do we compare to our competitors?

    When talking to an exec

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    117/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 117

    g

    Tell the time, not how the watch works.

    Most important, urgent point first.

    Keep it short.

    Keep it simple.

    Make it visual.

    Be ready to give context.

    What to say: #1

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    118/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 118

    y

    Our site is slower than our competitors.

    Were losing money.

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    119/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 119

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    120/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 120

    What to say: #2

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    121/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 121

    y

    Weve proven that, when our site is faster for

    users, they spend more.

    What to say: #3

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    122/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 122

    This is where we should be aiming.

    What to say: #4

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    123/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 123

    Consumers expect

    EVERY website toload fast.

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    124/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 124

    Performance automation market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    125/134

    2010 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 125

    1993 20021999 20062000 200719961995 1998 20042003 20092008 2010

    History of performance automation

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    126/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 126

    I will deliver what the server gives me.as efficiently as possible to the browser

    I will transform what the server gives me to optimize it for the user s browserDelivery

    Transformation

    O i i l D li T f ti

    Delivery vs Transformation

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    127/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 127

    Original Delivery Transformation

    9.5 secondsroun tr ps 5.7 secondsroun tr ps s on s roun tr ps

    Delivery market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    128/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 128

    Delivery market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    129/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 129

    Players delivery market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    130/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 130

    Transformation market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    131/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 131

    Transformation market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    132/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 132

    Transformation market

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    133/134

    2011 Strangeloop Networks Strangeloop. Faster Websites. Automatically. 133

  • 8/6/2019 London Meetup - Performance for Mortal Companies - JOSH-FINAL

    134/134