290 likes | 451 Views
Web Performance 101. Jeremy Solarz @jeremysolarz. What next?. What is “Web Performance” Money ≠ Performance? Experiments Where is the time? Follow the Rules! Toolbelt. What is performance. for the JavaScript folks… Stoyan Stefanov, JSMentors.
E N D
Web Performance 101 Jeremy Solarz @jeremysolarz Web Performance Group @ Meetup
What next? • What is “Web Performance” • Money ≠ Performance? • Experiments • Where is the time? • Follow the Rules! • Toolbelt Web Performance Group @ Meetup
What is performance for the JavaScript folks… Stoyan Stefanov, JSMentors http://velocityconf.com/velocity2010/public/schedule/detail/13019 Web Performance Group @ Meetup
What means slow • Pain = slow, Study form User Interface Engineering http://www.uie.com/articles/download_time/ • More on that at… http://www.phpied.com/psychology-of-performance/ Web Performance Group @ Meetup
What’s “Good Performance” • 0.1 seconds, instantaneous response • 1 second keeps the user's flow of thought seamless. • 10 seconds keeps the user's attention. • Compared to “Blink of an eye”: 0.3 – 0.4s http://www.useit.com/alertbox/response-times.html Web Performance Group @ Meetup
Tip • Progressive Rendering Part 1 Part 3 Part 2 Web Performance Group @ Meetup
Money ≠ Performance? Web Performance Group @ Meetup
http://velocityconf.com/velocity2010/public/schedule/detail/13023http://velocityconf.com/velocity2010/public/schedule/detail/13023 Web Performance Group @ Meetup
http://velocityconf.com/velocity2010/public/schedule/detail/13023http://velocityconf.com/velocity2010/public/schedule/detail/13023 Web Performance Group @ Meetup
http://velocityconf.com/velocity2010/public/schedule/detail/13023http://velocityconf.com/velocity2010/public/schedule/detail/13023 Web Performance Group @ Meetup
What does this mean? • Losing Visitors • Losing Sales • Losing Ad-revenue • Wasting SEO/SEM effort • Much more $$$ on bandwidth and servers Web Performance Group @ Meetup
Example • “A 1-second delay in page load time equals 11% fewer page views, a 16% decrease in customer satisfaction, and 7% loss in conversions” Aberdeen Group http://www.aberdeen.com/Aberdeen-Library/5136/RA-performance-web-application.aspx Web Performance Group @ Meetup
What MS did.. • Artificial 1s delay = 2.8% reduction in revenue/user (Bing) http://velocityconf.com/velocity2009/public/schedule/detail/8523 Web Performance Group @ Meetup
What Google did… Web Performance Group @ Meetup
Where is the time? • 80% of the page load time is spent outside the data centre!!! Steve Souders “High-Performance Websites Web Performance Group @ Meetup
The Building Blocks of #WebPerf http://www.slideshare.net/sthair/web-performance-101-ldn-webperf-steve-thair Web Performance Group @ Meetup
Follow the Rules! Web Performance Group @ Meetup
Avoid bad requests Avoid CSS expressions Combine external CSS Combine external JavaScript Defer loading of JavaScript Enable compression Leverage browser caching Leverage proxy caching Minify CSS Minify HTML Minify JavaScript Minimize request size Minimize DNS lookups Minimize redirects Optimize images Optimize the order of styles and scripts Parallelize downloads across hostnames Put CSS in the document head Remove unused CSS Serve resources from a consistent URL Serve scaled images Serve static content from a cookieless domain Specify a character set early Specify image dimensions Use efficient CSS selectors Gooles Rules http://code.google.com/speed/page-speed/docs/rules_intro.html Web Performance Group @ Meetup
Minimize HTTP Requests Use a Content Delivery Network Add an Expires or a Cache- Control Header Gzip Components Put StyleSheets at the Top Put Scripts at the Bottom Avoid CSS Expressions Make JavaScript and CSS External Reduce DNS Lookups Minify JavaScript and CSS Avoid Redirects Remove Duplicate Scripts Configure ETags Make AJAX Cacheable Use GET for AJAX Requests Reduce the Number of DOM Elements No 404s Reduce Cookie Size Use Cookie-Free Domains for Components Avoid Filters Do Not Scale Images in HTML Make favicon.ico Small & Cacheable Yahoo’s Rules http://developer.yahoo.com/yslow/help/#guidelines Web Performance Group @ Meetup
What is important?! • Reduce Page Size (<500Kb) • Enable (Gzip) Compression, even behind Proxies, http://velocityconf.com/velocity2010/public/schedule/detail/14334 • Reduce the number of roundtrips (<40 per page…) • Structure the page (to improve render & download) • CSS First • Javascript last • Lossy Images, http://www.phpied.com/overlooked-optimizations-images/ • Cache, Cache, Cache Web Performance Group @ Meetup
Impact? • Your page download times will drop by ~50% Web Performance Group @ Meetup
Toolbelt Web Performance Group @ Meetup
Client-side • ySlow (Firefox) • PageSpeed (Firefox) • Firebug (Firefox) • HTTPWatch (Firefox & IE) • Dynatrace Ajax Edition (IE only, Firefox) Web Performance Group @ Meetup
Check first • Analysis the waterfall graph • Look for render start time • Script blocking • # objects, http://mir.aculo.us/dom-monster/ • Headers • Not Gzip’d • No Expires or Cache Control Headers • 2 seconds Keep-Alive?? Web Performance Group @ Meetup
Online • WebPageTest.org, http://www.webpagetest.org/ • Showslow, http://www.showslow.com/ • Pagespeed Online, http://pagespeed.googlelabs.com/pagespeed/ • Smush It (image analysis) - http://www.smushit.com/ysmush.it/ • Browsermob, https://browsermob.com/performance-testing • HTTP Archive, http://httparchive.org/ • GTMetrix - http://gtmetrix.com/ • Yottaa - http://www.yottaa.com/ • RedBot (cache analysis), http://redbot.org/ Web Performance Group @ Meetup
Out of the box • Google Mod_pagespeed - http://code.google.com/speed/pagespeed/docs/module.html • Aptimize – www.aptimize.com • Webo - http://www.webogroup.com/home/site-speedup/ • Strangeloop - http://www.strangeloopnetworks.com/ • Blaze IO - http://www.blaze.io/ • DSA “Dynamic Site Acceleration” – Cotendo, Akamai, Limelight, CDNetworks etc Web Performance Group @ Meetup
Reference • Steve Souder’s blog, http://www.stevesouders.com/blog/ • http://www.phpied.com/category/performance/, Stoyan Stefanov • WebPerformanceToday, http://www.webperformancetoday.com/ • Performance Planet (WebPerf Blogs) - http://www.perfplanet.com/ • Sergey Chernvshev, http://www.sergeychernyshev.com/talks/Web_Performance • http://zoompf.com/blog, Billy Hoffman • http://developer.yahoo.com/performance/Yahoo Performance Team • http://velocityconf.com, Conference about performance => Velocity (awesome slides + videos for free…) • TheOpsMgr Blog - http://theopsmgr.seriticonsulting.com/ • UK Broadband stats - http://www.broadbandspeedchecker.co.uk/speed_ratings.aspx • Browser Usage Stats - http://www.w3counter.com/globalstats.php • http://www.webperformancetoday.com/2010/06/15/everything-you-wanted-to-know-about-web-performance/, More stats about impact of Web Performance Web Performance Group @ Meetup
? Web Performance Group @ Meetup
Last words Please review the Meetup on Meetup.com Next Meetup => Thursday, Oktober 6th 2011 Web Performance Group @ Meetup