Highload++ 2012 Proactive WPO
-
Upload
marcel-duran -
Category
Technology
-
view
806 -
download
3
description
Transcript of Highload++ 2012 Proactive WPO
![Page 1: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/1.jpg)
Proactive WPO@marcelduran
![Page 2: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/2.jpg)
about:me
![Page 3: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/3.jpg)
I'm not here
![Page 4: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/4.jpg)
I'm from here on
![Page 5: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/5.jpg)
V is for Vigilante
http://usa-moscow.blogspot.com/2010/09/more-hot-water.html
![Page 6: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/6.jpg)
Performance Radarhttp://www.flickr.com/photos/benfrantzdale/1056282822/
![Page 7: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/7.jpg)
“if you can’t measure it, you can’t improve it”
— Lord Kelvin
![Page 8: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/8.jpg)
worst case: no instrumentshttp://www.flickr.com/photos/timothyhackworth/753783003/
![Page 9: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/9.jpg)
build test
deploy
users
review
reactive
![Page 10: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/10.jpg)
better case: RUMhttp://www.flickr.com/photos/pj/6116201547/
![Page 11: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/11.jpg)
Real User Measurementshttp://lognormal.com/features/
github.com//boomerang
lognormal
![Page 12: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/12.jpg)
build test
deploy
users
monitor
reactive
![Page 13: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/13.jpg)
![Page 14: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/14.jpg)
YSlow manually
![Page 15: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/15.jpg)
YSlow automationhttp://www.flickr.com/photos/snazzyguy/3381047684/
![Page 16: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/16.jpg)
+
![Page 17: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/17.jpg)
much better: RUM + YSlow (CI)http://donq.com/recipes/rum-sour/
+
![Page 18: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/18.jpg)
build test
deploymonitor
users
wpo
proactive
![Page 19: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/19.jpg)
jul/07
+183k users (formerly +210k)+3.3mi downloadsTop 25 2bi add-ons downloaded
![Page 20: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/20.jpg)
jul/07 mar/11
~160k users (formerly 145k)
![Page 21: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/21.jpg)
jul/07 jun/11mar/11
![Page 22: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/22.jpg)
jul/07 jun/11mar/11 aug/11
~80k users
![Page 23: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/23.jpg)
jul/07 jun/11mar/11 aug/11
oct/11
![Page 24: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/24.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 dec/11
![Page 25: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/25.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 feb/12dec/11
first 24 hours437
37so far
88976
![Page 26: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/26.jpg)
5th anniversaryhttp://www.flickr.com/photos/spool32/5045502202
![Page 27: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/27.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 feb/12dec/11 apr/12
![Page 28: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/28.jpg)
jul/07 jun/11mar/11 aug/11
oct/11 feb/12dec/11 apr/12 jun/12
![Page 29: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/29.jpg)
YSlow Command Line
![Page 30: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/30.jpg)
$ npm install yslow -g
![Page 31: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/34.jpg)
-f, --format <format> (json|xml|plain)
![Page 35: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/36.jpg)
-i, --info <info> (basic|grade|stats|comps|all)
![Page 37: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/39.jpg)
-d, --dict
![Page 40: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/41.jpg)
-r, --ruleset <ruleset>(ydefault | yslow1 | yblog)
![Page 42: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/45.jpg)
-b, --beacon <url>-v, --verbose
![Page 46: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/47.jpg)
before after
Case: Y! Continuous Deployment
![Page 48: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/48.jpg)
before after
No Performance Test Suite
![Page 49: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/49.jpg)
BOO!
YSlow for PhantomJShttp://www.flickr.com/photos/pedroferrer/3615212504
![Page 50: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/50.jpg)
$ phantomjs yslow.js http://yslow.org
![Page 51: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/51.jpg)
-f, --format <format>
( json | xml | plain | tap | junit )
![Page 52: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/54.jpg)
-t, --threshold <score>( [0-100] | [A-F] | {json} )
default: 80
![Page 55: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/55.jpg)
-t B-t 75-t '{"overall": "C", "ycdn": "F"}'-t '{"ycdn": "F", "yexpires": 75}'
![Page 56: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/56.jpg)
-u, --ua "<user agent>"
e.g: -u "Mozilla/4.0 (compatible; MSIE 6)"
![Page 57: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/57.jpg)
-vp, --viewport <WxH>
e.g: -vp 640x960
![Page 58: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/58.jpg)
-ch, --headers <JSON>
e.g: -ch '{"Cookie": "foo=bar"}'
![Page 59: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/59.jpg)
-c, --console <level>(0: none | 1: msg | 2: msg+line+source)
![Page 60: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/60.jpg)
![Page 61: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/61.jpg)
![Page 62: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/62.jpg)
![Page 63: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/63.jpg)
YSlow + CI = BFF
![Page 64: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/64.jpg)
node.js server
![Page 65: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/66.jpg)
+ +
![Page 67: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/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: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/68.jpg)
WPO at Twitter
![Page 69: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/69.jpg)
High Performance
A A A A ...
![Page 70: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/70.jpg)
best: RUM + (YSlow + WPT) CIhttp://donq.com/recipes/rum-sour/
++
![Page 71: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/71.jpg)
build test
deploy
monitor
wpo
perf
users
proactive
![Page 72: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/72.jpg)
performance boxes
branch A branch Bprod
...
![Page 73: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/73.jpg)
branches comparison
X+100ms
branch A
X-50ms
branch B
Xms
prodvs
![Page 74: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/74.jpg)
++
+vs
![Page 75: Highload++ 2012 Proactive WPO](https://reader034.fdocuments.in/reader034/viewer/2022042510/55529a78b4c905e8128b4e99/html5/thumbnails/75.jpg)
/getyslow
@yslowyslow.org
slides icons: http://www.iconfinder.com/
Cпасибо