Velocity China 2012 Proactive WPO
-
Upload
marcel-duran -
Category
Technology
-
view
1.984 -
download
3
description
Transcript of Velocity China 2012 Proactive WPO
![Page 2: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/2.jpg)
about:me
![Page 3: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/3.jpg)
I'm not here
![Page 4: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/4.jpg)
I'm from here on
![Page 5: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/5.jpg)
V is for Vigilante
http://usa-moscow.blogspot.com/2010/09/more-hot-water.html
![Page 6: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/6.jpg)
Performance Radarhttp://www.flickr.com/photos/benfrantzdale/1056282822/
![Page 7: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/7.jpg)
“if you can’t measure it, you can’t improve it”
— Lord Kelvin
![Page 8: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/8.jpg)
worst case: no instrumentshttp://www.flickr.com/photos/timothyhackworth/753783003/
![Page 9: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/9.jpg)
build test
deploy
users
review
reactive
![Page 10: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/10.jpg)
better case: RUMhttp://www.flickr.com/photos/pj/6116201547/
![Page 11: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/11.jpg)
Real User Measurementshttp://lognormal.com/features/
github.com//boomerang
lognormal
![Page 12: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/12.jpg)
build test
deploy
users
monitor
reactive
![Page 13: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/13.jpg)
![Page 14: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/14.jpg)
YSlow manually
![Page 15: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/15.jpg)
YSlow automationhttp://www.flickr.com/photos/snazzyguy/3381047684/
![Page 16: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/16.jpg)
+
![Page 17: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/17.jpg)
much better: RUM + YSlow (CI)http://donq.com/recipes/rum-sour
+
![Page 18: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/18.jpg)
build test
deploymonitor
users
wpo
proactive
![Page 19: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/19.jpg)
jul/07
+174k users+3.3mi downloadsTop 25 2bi add-ons downloaded
![Page 20: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/20.jpg)
jul/07 mar/11
~171k users
![Page 21: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/21.jpg)
jul/07 jun/11mar/11
![Page 22: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/22.jpg)
jul/07 jun/11mar/11 aug/11
~86k users
![Page 23: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/23.jpg)
jul/07 jun/11mar/11 aug/11
oct/11
![Page 24: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/24.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 dec/11
![Page 25: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/25.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 feb/12dec/11
first 24 hours437
37so far
91977
![Page 26: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/26.jpg)
5th anniversaryhttp://www.flickr.com/photos/spool32/5045502202
![Page 27: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/27.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 feb/12dec/11 apr/12
![Page 28: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/28.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 feb/12dec/11 apr/12 jun/12
![Page 29: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/29.jpg)
YSlow Command Line
![Page 30: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/30.jpg)
$ npm install yslow -g
![Page 31: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/31.jpg)
$ yslow --help Usage: yslow [options] [file ...]
Options:
-h, --help output usage information -V, --version output the version number -i, --info <info> specify the information to display/log
(basic|grade|stats|comps|all) [basic] -f, --format <format> specify the output results format
(json|xml|plain) [json] -r, --ruleset <ruleset> specify the YSlow performance ruleset to be used
(ydefault|yslow1|yblog) [ydefault] -b, --beacon <url> specify an URL to log the results -d, --dict include dictionary of results fields -v, --verbose output beacon response information
Examples:
yslow file.har yslow -i grade -f xml -b http://server.com/beacon file1.har file2.har yslow -info all --format plain /tmp/*.har yslow -i basic --rulseset yslow1 -d < file.har curl example.com/file.har | yslow -i grade -b http://server.com/beacon -v
![Page 32: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/32.jpg)
HAR file
{ "log": { "version": "1.1", "pages": [ { "startedDateTime": "2012-08-16T18:27:29.000+00:00", "id": "page_1_0", "pageTimings": { "onLoad": 13701, . . .
![Page 33: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/33.jpg)
$ yslow file.har$ yslow file1.har file2.har file3.har$ yslow my-har-files/*.har$ yslow < file.har$ curl http://foo.com/file.har | yslow
![Page 34: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/34.jpg)
-f, --format <format> (json|xml|plain)
![Page 35: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/35.jpg)
$ yslow foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981 }
$ yslow --format plain foo.com.harsize: 96.4K (98725 bytes)overall score: B (89)url: http://www.foo.com/# of requests: 9ruleset: ydefaultpage load time: 981
$ yslow --format xml foo.com.har<?xml version="1.0" encoding="UTF-8"?><results> <w>98725</w> <o>89</o> <u>http://www.foo.com/</u> <r>9</r> <i>ydefault</i> <lt>981</lt></results>
![Page 36: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/36.jpg)
-i, --info <info> (basic|grade|stats|comps|all)
![Page 37: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/37.jpg)
$ yslow foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981 }
$ yslow --info grade foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981, g: { ynumreq: { score: 92, components: [] }, ycdn: { score: 80, components: ['a.com', 'b.com'] }, ... yfavicon: { score: 100, components: [] } }}
$ yslow --info stats foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981, stats: { doc: { r: 1, w: 18419 }, css: { r: 2, w: 20951 }, image: { r: 3, w: 29553 }, js: { r: 2, w: 10852 }, cssimage: { r: 1, w: 18950 } }}
![Page 38: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/38.jpg)
$ yslow --info comps foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981, comps: [ {type:'doc', url:'foo.com', size:1841, resp:41, gzip:613}, {type:'css', url:'bar.css', size:3062, resp:98, gzip:989}, ... {type:'js', url:'baz.js', size:2445, resp:86, gzip:834} ]}
$ yslow --info all foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981, g: { ynumreq: { score: 92, components: [] }, ... } stats: { doc: { r: 1, w: 18419 }, css: { r: 2, w: 20951 }, ... } comps: [ {type:'doc', url:'foo.com', size:1841, resp:41, gzip:613}, ... ]}
![Page 39: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/39.jpg)
-d, --dict
![Page 40: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/40.jpg)
$ yslow -i basic --dict foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981, dictionary: { w: 'size', o: 'overall score', u: 'url', r: 'total number of requests', i: 'id of the ruleset used', lt: 'page load time', grades: '100 >= A >= 90 > B >= 80 > C >= 70 > D >= 60 > E >= 50 > F >= 0 > N/A = -1' }}
![Page 41: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/41.jpg)
-r, --ruleset <ruleset>(ydefault | yslow1 | yblog)
![Page 42: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/42.jpg)
Minimize HTTP RequestsUse a Content Delivery NetworkAvoid empty src or hrefAdd an Expires or a Cache-Control HeaderGzip ComponentsPut StyleSheets at the TopPut Scripts at the BottomAvoid CSS ExpressionsMake JavaScript and CSS ExternalReduce DNS LookupsMinify JavaScript and CSSAvoid RedirectsRemove Duplicate ScriptsConfigure ETagsMake AJAX CacheableUse GET for AJAX RequestsReduce the Number of DOM ElementsNo 404sReduce Cookie SizeUse Cookie-Free Domains for ComponentsAvoid FiltersDo Not Scale Images in HTMLMake favicon.ico Small and Cacheable
ydefault(aka YSlow V2)
23 rules
![Page 43: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/43.jpg)
Minimize HTTP RequestsUse a Content Delivery NetworkAdd an Expires or a Cache-Control HeaderGzip ComponentsPut StyleSheets at the TopPut Scripts at the BottomAvoid CSS ExpressionsMake JavaScript and CSS ExternalReduce DNS LookupsMinify JavaScript and CSSAvoid RedirectsRemove Duplicate ScriptsConfigure ETags
yslow1(aka YSlow V1/classic)
13 rules
![Page 44: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/44.jpg)
Minimize HTTP RequestsAvoid empty src or hrefGzip ComponentsPut StyleSheets at the TopPut Scripts at the BottomAvoid CSS ExpressionsReduce DNS LookupsMinify JavaScript and CSSAvoid RedirectsRemove Duplicate ScriptsReduce the Number of DOM ElementsNo 404sAvoid FiltersDo Not Scale Images in HTMLMake favicon.ico Small and Cacheable
yblog(aka small site/blog)
15 rules
![Page 45: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/45.jpg)
-b, --beacon <url>-v, --verbose
![Page 46: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/46.jpg)
$ yslow --beacon http://server.com/ foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981 }
$ yslow -b http://server.com/ --verbose foo.com.har{ w: 98725, o: 89, u: 'foo.com', r: 9, i: 'ydefault', lt: 981, beacon: { status: 200, headers: { "content-type": 'text/html; charset=utf-8', "date": 'Thu, 02 Aug 2012 17:23:33 GMT', "content-length": '3', "connection": 'close' }, body: 'ok\n' }}
![Page 47: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/47.jpg)
before after
Case: Y! Continuous Deployment
![Page 48: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/48.jpg)
before after
No Performance Test Suite
![Page 49: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/49.jpg)
BOO!
YSlow for PhantomJShttp://www.flickr.com/photos/pedroferrer/3615212504
![Page 50: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/50.jpg)
$ phantomjs yslow.js http://yslow.org
![Page 51: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/51.jpg)
-f, --format <format>
( json | xml | plain | tap | junit )
![Page 52: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/52.jpg)
$ phantomjs yslow.js -i basic --format tap http://yslow.org
TAP version 131..1ok 1 B (88) overall score
$ phantomjs yslow.js -i grade --format tap http://yslow.org
TAP version 131..24ok 1 B (88) overall scorenot ok 2 C (72) ynumreq: Make fewer HTTP requests --- message: This page has 7 external Javascript scripts ...ok 3 C (70) ycdn: Use a Content Delivery Network (CDN) --- message: There are 3 static components not on CDN. offenders: - "yslow.org: 1 component, 8.0K (8.0K GZip)" - "fonts.googleapis.com: 1 component, 1.0K (1.0K GZip)" - "widgets.twimg.com: 1 component, 0.8K" ...ok 4 A (100) yemptysrc: Avoid empty src or hrefnot ok 5 F (12) yexpires: Add Expires headers --- message: There are 5 static components without a far-future expiration date. offenders: - "http://yslow.org/stylesheets/styles-min.css"...
![Page 53: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/53.jpg)
$ phantomjs yslow.js -i basic --format junit http://yslow.org
<?xml version="1.0" encoding="UTF-8" ?><testsuites> <testsuite name="YSlow" tests="1" failures="1"> <testcase name="overall score" status="C (79)"> <failure/> </testcase> </testsuite></testsuites>
![Page 54: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/54.jpg)
-t, --threshold <score>( [0-100] | [A-F] | {json} )
default: 80
![Page 55: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/55.jpg)
-t B-t 75-t '{"overall": "C", "ycdn": "F"}'-t '{"ycdn": "F", "yexpires": 75}'
![Page 56: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/56.jpg)
-u, --ua "<user agent>"
e.g: -u "Mozilla/4.0 (compatible; MSIE 6)"
![Page 57: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/57.jpg)
-vp, --viewport <WxH>
e.g: -vp 640x960
![Page 58: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/58.jpg)
-ch, --headers <JSON>
e.g: -ch '{"Cookie": "foo=bar"}'
![Page 59: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/59.jpg)
-c, --console <level>(0: none | 1: msg | 2: msg+line+source)
![Page 60: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/60.jpg)
![Page 61: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/61.jpg)
![Page 62: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/62.jpg)
![Page 63: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/63.jpg)
YSlow + CI = BFF
![Page 64: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/64.jpg)
node.js server
![Page 65: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/65.jpg)
local HAR file uploadcurl http://yslow.nodester.com/ -F '[email protected]'
remote HAR filecurl 'http://yslow.nodester.com/?har=http://server.com/foo.har'
HAR {json} stringcurl http://yslow.nodester.com/ -d 'har={"log":{"version":"1.1", ... }}'
![Page 66: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/66.jpg)
+ +
![Page 67: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/67.jpg)
curl "http://yslow.nodester.com/?har=http%3A%2F%2Fwww.webpagetest.org%2Fexport.php%3Ftest%3D120627_MC_5WD
&i=grade&b=http%3A%2F%2Fwww.showslow.com%2Fbeacon%2Fyslow%2F&v=1"
![Page 68: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/68.jpg)
High Performance
A A A A ...
![Page 69: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/69.jpg)
best: RUM + (YSlow + WPT) CIhttp://donq.com/recipes/rum-sour/
++
![Page 70: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/70.jpg)
WebPageTest
![Page 71: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/71.jpg)
build test
deploy
monitor
wpo
perf
users
proactive
![Page 72: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/72.jpg)
performance boxes
branch A branch Bprod
...
![Page 73: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/73.jpg)
branches comparison
vs
Xms
prod
X+100ms
branch A
X-50ms
branch B
![Page 74: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/74.jpg)
http://marcelduran.com/webpagetest-api
![Page 75: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/75.jpg)
![Page 76: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/76.jpg)
github.com/marcelduran/webpagetest-api
![Page 77: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/77.jpg)
++
+vs
![Page 78: Velocity China 2012 Proactive WPO](https://reader034.fdocuments.us/reader034/viewer/2022042614/555299d8b4c9051f108b5046/html5/thumbnails/78.jpg)
/getyslow
@yslowyslow.org
slides icons: http://www.iconfinder.com/
谢谢