7 Habits of Exceptional Performance

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    4 Favorites

    7 Habits of Exceptional Performance - Presentation Transcript

    1. THE 7 HABITS OF EXCEPTIONAL PERFORMANCE Stoyan Stefanov Nicole Sullivan http://phpied.com http://stubbornella.org
    2. Quantify and improve the performance of all Yahoo! products worldwide
    3. Y! Performance Research Engineering Team Nicole Sullivan, Anande Kishore (intern), Stoyan Stefanov, Philip Tellis, Swapnil Shinde
    4. Why talk about performance?
    5. 1: Because fast is better
    6. 6
    7. 9
    8. 10
    9. 11
    10. 12
    11. 2: Because sites are bigger
    12. Modern web sites & applications have changed architecturally.
    13. From 2003 to 2008: 97K to 312K. 25.7 to 49.9 objects.
    14. In past 12 months, Top 1000 sites: From 250K to 310.4K. WebSiteOptimization.com/speed/tweak/average-web-page
    15. 3: Time is money
    16. +100 ms
    17. Amazon:1% drop in sales +100 ms
    18. +400 ms
    19. Yahoo!: 5-9% drop in full-page traffic +400 ms
    20. +500 ms
    21. Google: 20% fewer searches +500 ms
    22. What is performance?
    23. Two Flavors: Response Time & System Efficiency
    24. Our focus is the response time of web products
    25. Performance Fruit (some low, some high)
    26. After YSlow “A”? 1. Flush the buffer early 11. Minimize DOM access 2. Use GET for AJAX requests 12. Develop smart event handlers 3. Post-load components 13. Choose <link> over @import 4. Preload components 14. Avoid filters 5. Reduce the number of DOM elements 15. Optimize images 6. Split components across domains 16. Optimize CSS sprites 7. Minimize the number of iframes 17. Don't scale images in HTML 8. No 404s 18. Make favicon.ico small and cacheable 9. Reduce cookie size 19. iPhone 3G Breakthrough 10. Use cookie-free domains for 20. Pack components into a multipart components document
    27. After YSlow “A”? 1. Flush the buffer early 11. Minimize DOM access 2. Use GET for AJAX requests 12. Develop smart event handlers 3. Post-load components 13. Choose <link> over @import 4. Preload components 14. Avoid filters 5. Reduce the number of DOM elements 15. Optimize images 6. Split components across domains 16. Optimize CSS sprites 7. Minimize the number of iframes 17. Don't scale images in HTML 8. No 404s 18. Make favicon.ico small and cacheable 9. Reduce cookie size 19. iPhone 3G breakthrough New! 10. Use cookie-free domains for 20. Pack components into a multipart components document
    28. #1 Flush the buffer early Let the browser work while server is busy
    29. #1 Com pon e n ts down load in paralle l with Text HTML Let the browser work while server is busy
    30. #2 Use GET for Ajax requests • GET is for retrieving • POST without actually data posting data is like GET • GET request is one TCP • POST is a two-step packet (unless you have process (send headers, a lot of cookies) send data) • Max URL length 2K (because of IE) • Yahoo! Mail Research
    31. #3 Post-load components Ask yourself: what's absolutely required in order to render the page initially?
    32. Example: Yahoo.com • Extras can wait (drag and drop, animations, hidden content, images below the fold) • JavaScript is ideal candidate for splitting • YUI Image Loader • YUI Get Utility
    33. #4 Preload Components Preload items you'll need in the future
    34. 3 flavors Unconditional Conditional Anticipated
    35. Unconditional Preload google.com
    36. Conditional Preload yahoo.com
    37. Anticipated Preload • Of course it’s slow: • 100% of page views are with an empty cache. “The redesign is cool, • New Feature or full but it’s so slow!” redesign? • Preload components before launch; • users will already have a primed cache when you go live.
    38. #14 Avoid filters Why is the AlphaImageLoader used? IE6 and earlier don’t natively support alpha transparency. This filter forces that support.
    39. Problem with filters • Blocks rendering, freezes the browser • Increased memory consumption • Per element, not per image!
    40. Solution: Avoid AlphaImageLoader 1. BEST: avoid completely, use PNG8 which degrades gracefully in IE < 7 2. Fallback: use underscore hack so the filter is applied only to IE < 7 #elem { background: url(some.png); _background: none; _filter:progid:DXImageTransform.Microsoft.AlphaImageLoader (src='some.png', sizingMethod='crop'); }
    41. Progressively enhanced PNG8 Build a binary transparency image. In Fireworks, add a few alpha transparent pixels.
    42. Good browsers get more And the dinosaurs get an acceptable fallback
    43. Experimental Data Removing Alpha Image Loader 100ms Yahoo! search
    44. #19 iPhone 3G 1000Kb cache limit
    45. 25Kb component limit no longer exists. Total cache limit is 1000K. Cache limitations are not affected by gzipping. iPhone Cache has evolved
    46. 7 HABITS OF HIGH PERFORMANCE Baking performance into development
    47. 1. LOFNO Look out for number one!
    48. 2. Harvest the low-hanging fruit Pick your battles, some performance optimizations are easier to implement. (Run YSlow)
    49. 3. Balance features with speed
    50. Balancing the performance budget
    51. Three steps. • Measure current performance and trends • Estimate performance impact of all new features • Estimate impact of all performance improvements.
    52. Estimates, how? track: • Page Weight * • Response Time • HTTP requests * For more complex sites, track page weight by component type; CSS, JS, Images, Flash
    53. Features = Optimizations
    54. Verify assumptions. • Was the performance impact of each feature what you estimated it would be? • Did the optimizations help as much as you thought they would?
    55. Allocate time, balance the budget Performance Improvements versus New Features 58
    56. 4. Make performance part of the process Avoid the response time roller coaster.
    57. 5. Measure and track results Measurement is the first step to improvement.
    58. Firebug Web development evolved. Free.
    59. IBM Page Detailer Packet sniffer. Windows only (IE, FF, any .exe). Free trial, $300 license http://alphaworks.ibm.com/tech/ pagedetailer
    60. LiveHTTPHeaders View HTTP headers. Firefox extension. Free.
    61. YSlow Performance insights and analysis tool. Free.
    62. Gomez 3rd party measurements. Competitor comparisons.
    63. Smush it Image Optimization http://smushit.com
    64. 6. Set targets
    65. 7. Ask questions and challenge answers Even smart people make assumptions or repeat incorrect statements.
    66. Links book: http://www.oreilly.com/catalog/9780596514211/ examples: http://stevesouders.com/examples/ image maps: http://www.w3.org/TR/html401/struct/objects.html#h-13.6 CSS sprites: http://alistapart.com/articles/sprites inline images: http://tools.ietf.org/html/rfc2397 jsmin: http://crockford.com/javascript/jsmin dojo compressor: http://dojotoolkit.org/docs/shrinksafe HTTP status codes: http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html IBM Page Detailer: http://alphaworks.ibm.com/tech/pagedetailer Fasterfox: http://fasterfox.mozdev.org/ LiveHTTPHeaders: http://livehttpheaders.mozdev.org/ Firebug: http://getfirebug.com/ YUIBlog: http://yuiblog.com/blog/2006/11/28/performance-research-part-1/ http://yuiblog.com/blog/2007/01/04/performance-research-part-2/ http://yuiblog.com/blog/2007/03/01/performance-research-part-3/ http://yuiblog.com/blog/2007/04/11/performance-research-part-4/ YDN: http://developer.yahoo.net/blog/archives/2007/03/high_performanc.html http://developer.yahoo.net/blog/archives/2007/04/rule_1_make_few.html
    67. CC Images Used “Zipper Pocket” by jogales: http://www.flickr.com/photos/jogales/11519576/ “Need for Speed” by Amnemona: http://www.flickr.com/photos/marinacvinhal/379111290/ “I wonder what flavour it is?” by blather: http://www.flickr.com/photos/deadlyphoto/411770353/ “takeout boxes from Grand Shanghai” by massdistraction: http://www.flickr.com/photos/sharynmorrow/11263821/ “takeout” by dotpolka : http://www.flickr.com/photos/dotpolka/249129144/ “ice cream cone melting/rome” by Megandavid : http://www.flickr.com/photos/megandavid/189332042/ “nikon em bokeh” by dsevilla: http://www.flickr.com/photos/dsevilla/249202834/ “maybe” by Tal Bright: http://www.flickr.com/photos/bright/118197469/ “how do they do that” by Fort Photo: http://www.flickr.com/photos/fortphoto/388825145/ “Gorgeous iceberg 7 [Le Toit du Monde]” by Adventure Addict http://www.flickr.com/photos/adventureaddict/ 35290307/ “molasses-spice cookies” ilmungo: http://www.flickr.com/photos/ilmungo/65345233/ “Driving is fun” by Ben McLeod: http://www.flickr.com/photos/benmcleod/59948935/ “Dozen eggs” by aeA: http://www.flickr.com/photos/raeallen/96238870/ “Max speed 15kmh” by xxxtoff: http://www.flickr.com/photos/xxxtoff/219781763/ “Stairway to heaven” ognita: http://www.flickr.com/photos/ognita/503915547/ “flaps up” by http://www.flickr.com/photos/jurvetson/74274113/ “Fast Cat” by http://www.flickr.com/photos/raylopez/708023176/ “blues” by http://www.flickr.com/photos/pankaj/1877184829/
    68. CC Images Used “Vintage Kodak Studio Scales Set and Bottle” by http://www.flickr.com/photos/captkodak/ 272746539/ “Assumtion, Minissota” by http://www.flickr.com/photos/afiler/226337382/ Thanks to Tenni Theurer and Nate Koechley http://developer.yahoo.net/blog/archives/2008/01/the_7_habits_fo.html 71
    69. Let’s keep talking... Stoyan Stefanov Nicole Sullivan http://phpied.com http://stubbornella.org YSlow: Lead Developer nicole@stubbornella.org ssttoo@gmail.com “stubbornella” on the web

    + Nicole SullivanNicole Sullivan, 2 years ago

    custom

    3397 views, 4 favs, 2 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 3397
      • 3392 on SlideShare
      • 5 from embeds
    • Comments 0
    • Favorites 4
    • Downloads 133
    Most viewed embeds
    • 4 views on http://www.slideshare.net
    • 1 views on http://192.168.10.100

    more

    All embeds
    • 4 views on http://www.slideshare.net
    • 1 views on http://192.168.10.100

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories