63
Introduction How does it work? Using boomerang Data Boomerang: How fast do users think your site is? Philip Tellis / [email protected] ConFoo.ca/2011 – 2011.03.09-11 ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Boomerang: How fast do users think your site is?

Embed Size (px)

Citation preview

Page 1: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

Boomerang: How fast do users think your siteis?

Philip Tellis / [email protected]

ConFoo.ca/2011 – 2011.03.09-11

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 2: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

$ finger philip

Philip [email protected]

@bluesmoongeek - paranoid - speedfreakyahoohttp://bluesmoon.info/

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 3: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 4: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 5: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 6: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

Only 10–20% of page load time is spent on systems we control

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 7: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

It’s what we can’t control that users notice

http://twitter.com/stoyanstefanov/status/43747252317077504

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 8: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

browsers

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 9: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

plugins

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 10: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

OSes

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 11: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

viruses

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 12: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

antiviruses

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 13: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

microwaves

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 14: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

baby monitors

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 15: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

naughty neighbours

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 16: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

file shares

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 17: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

governments

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 18: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

rodents

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 19: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We can’t control

Try simulating all that in the lab!

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 20: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We need to measure real end-user performance

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 21: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

We need to measure real end-user performance from the realend-user’s perspective

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 22: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 23: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

While this might work, it isn’t necessarily representative

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 24: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

What about JavaScript?

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 25: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 26: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

boomerang is...

A piece of javascript that you add to your web page where itmeasures and beacons back to you, the end user’s perceivedperformance of your page

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 27: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

How?

<script src="boomerang.js" type="text/javascript"></script><script type="text/javascript">BOOMR.init({

user_ip: "<network ident>",beacon_url: "http://mysite.com/beacon.php"

});</script>

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 28: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

TimeThe adversaryMeasure twiceboomerang

What does it do?

Measures user’s network throughput and latency to yourserverMeasures the current page’s load timeBeacons these results back to your server

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 29: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

How does boomerang work?

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 30: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

Let’s take that one at a time

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 31: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

Measuring latency

Download a 32 byte gif 10 times in sequenceMeasure the time to download eachDiscard the first measurement because it’s overpriced9

Calculate the arithmetic mean, standard deviation andmargin of error of the rest

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 32: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

Measuring throughput

After the latency test is done, we download progressivelylarger imagesStop at the first image that times outRedownload that image a few more timesCalculate the median, standard deviation and margin oferror of the largest image

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 33: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

Measuring latency before throughput helps here

Those 10 latency images do a lot to widen the TCPwindow sizeThe bandwidth images make much better use of availablebandwidthThe image we end with makes the best use of bandwidth

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 34: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

How do we measure page load time?

In the onbeforeunload event, measure the time andstore it in a cookieIn the onload event, check the cookie, and measure thedifference with the current timeWe also make sure that the page that set the cookie is thereferrer of the current page

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 35: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

What? Two pages?

Yes, this needs two pages and cookies. If those aren’tsupported, we try to use the WebTiming API10.

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 36: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

LatencyBandwidth/ThroughputLoad timeAccuracy

How accurate is it?

Latency measurements are very accurate (±1%)Bandwidth is to an order of magnitude. For badconnections can be ±30%Page load time sometimes has outliers, you needpost-filteringThe margin of error tells you how good your data is

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 37: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

Include it on your page

<script src="boomerang.js" type="text/javascript"></script><script type="text/javascript">BOOMR.init({

user_ip: "<network ident>",beacon_url: "http://mysite.com/beacon.php"

});</script>

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 38: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

For most sites, that’s about it

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 39: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

You probably want to do more

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 40: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

Measure more than just load time

<html><head><script>var t_pagestart=new Date().getTime();</script>...<script>var th=new Date().getTime();</script></head><body>...<script>var tj=new Date().getTime();</script>... ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 41: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

...<script src="boomerang.js"></script>...var te=new Date().getTime();BOOMR.plugins.RT.setTimer("t_head", th-t_pagestart).

setTimer("t_body", te-th).setTimer("t_js", te-tj);

</script></body></html>

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 42: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

This adds the t_head, t_body and t_js fields to the beacon

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 43: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

Loading dynamic content

BOOMR.init({user_ip: "<network ident>",beacon_url: "http://mysite.com/beacon.php",auto_run: false

});

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 44: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

Loading dynamic content

// Just before download startsBOOMR.plugins.RT.startTimer("t_done");

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 45: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

Loading dynamic content

// Just after download finishesBOOMR.plugins.RT.done();

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 46: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

BasicIn-page timersAJAX

Much more

http://yahoo.github.com/boomerang/doc/howtos/

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 47: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

The beacon

GET request to the beacon URL (response ignored)All parameters passed in the query stringExtra timers are passed in as a comma separated list int_other

before_beacon JavaScript event fired just before thebeacon is sent

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 48: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

What should we do with the data?

Sanity checking to:Remove fake dataRemove abusive dataMaybe just rate limiting

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 49: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

What can we do with the data?

Statistical analysis to:Remove outliersAggregate based on bandwidth blocksMeasure trends over time and correlate them with codechanges

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 50: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

Bandwidth blocks

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 51: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

Bandwidth blocks

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 52: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

Bandwidth blocks

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 53: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

Bandwidth blocks

Data points from some countries may require narrower bands

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 54: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

Geographic data

Looking at latency from different geographic locations can tellyou where your next mirror should be

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 55: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

ISPs

Grouping data by ISP can tell you who’s behaving badly

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 56: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

More data

Write plugins to get more performance dataWe already have a DNS pluginI’ve just completed a plugin to measure IPv6 support andlatencyWhat about a full WebTiming plugin?I’m also looking at measuring connection setup time

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 57: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

shouldacouldawoulda

You decide

Once you have the data, you can do anything with it

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 58: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

Boomerang: It (almost) always comes back

http://github.com/yahoo/boomerang

http://yahoo.github.com/boomerang/doc/

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 59: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

Photo credits

flickr.com/photos/21233184@N02/4389412851http://xkcd.com/445/

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 60: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

Contact me

Philip [email protected]

@bluesmoongeek - paranoid - speedfreakyahoohttp://bluesmoon.info/slideshare.net/bluesmoonjoind.in/talk/view/2913

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 61: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

References

github.com/yahoo/boomerangMore bandwidth doesn’t matter (much) – Mike BelsheAnalysing Bandwidth & Latency – YUI BlogIt’s the latency, stupid – Stuart CheshireThe statistics of web performance

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 62: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

Overpriced images

The first image might require a DNS lookup and TCPhandshakeSlow start is not an issue since 32 bytes fit in 1 packet

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?

Page 63: Boomerang: How fast do users think your site is?

IntroductionHow does it work?Using boomerang

Data

WebTiming API

JavaScript interface to network timing information includingDNS, TCP connect, download, etc. Supported by:

Microsoft Internet Explorer 9Google Chrome (WebKit)W3C specification

ConFoo.ca/2011 – 2011.03.09-11 Boomerang: How fast do users think your site is?