Paul Roy, Alex Polak, Gregory Bershansky MSN Performance & Reliability Team Microsoft.

Slides:



Advertisements
Similar presentations
Building Fast 3rd-Party Webapps O'Reilly Velocity Web Performance and Operations Conference 24 June Lessons.
Advertisements

Hotmails Performance Tuning Best Practices Aladdin A. Nassar Hotmails Performance Champion Microsoft.
Episodes a shared approach for timing web pages Steve Souders Google Disclaimer: This content does not necessarily reflect.
Performance Related Changes and their User Impact
First create and sign up for a blue host account Through the help of Blue Host create a WordPress website for the business After you created WordPress.
©2013 AKAMAI | FASTER FORWARD TM It's all about Performance Measured and Perceived Performance on Desktop and Mobile Devices San Mateo Meetup, July 2013.
SSRS 2008 Architecture Improvements Scale-out SSRS 2008 Report Engine Scalability Improvements.
CHAPTER 15 WEBPAGE OPTIMIZATION. LEARNING OBJECTIVES How to test your web-page performance How browser and server interactions impact performance What.
Client side performance in Web based Banking applications Divakar Prabhu Infosys Limited (NASDAQ: INFY)
1 Reproduction interdite. © ip-label 2012 Arnaud Becart ip-label.
Do You Know What Your Competitors are Doing Online? Hitwise does August 7, 2006 Search Engine Strategies – San Jose Search Engine Landscape.
DEV392: Extending SharePoint Products And Technologies Through Web Parts And ASP.NET Clint Covington, Program Manager Data And Developer Services - Office.
It’s always better live. MSDN Events Developing ASP.NET AJAX Controls with Silverlight.
High Performance Websites (Based on Steve Souder’s lecture) By Bhoomi Patel.
Putting the Network to Work
Simon Amrein Consultant Trivadis AG What is ASP.NET 4.0 Ajax Ajax Control Toolkit Microsoft Ajax Content Delivery Network jQuery jQuery Client Templates.
Definition from Wikipedia.  The Prototype JavaScript Framework  implemented as a single file of JavaScript code  named prototype.js (
Performance, SEO, Accessibility Ivan Zhekov Telerik Corporation
1. 2 What’s New in NetBeans IDE What is NetBeans IDE?  Ready to use out of the box  Support for latest Java specifications & standards  Other.
2 A First Look at Windows Presentation Foundation Everywhere ("WPF/E") Joe Stegman Lead Program Manager Microsoft Corporation.
 Zhichun Li  The Robust and Secure Systems group at NEC Research Labs  Northwestern University  Tsinghua University 2.
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
Windows Store apps with HTML + Facebook integration
CSCI N241: Fundamentals of Web Design Copyright ©2004  Department of Computer & Information Science Adding Sound.
1 Guide to Novell NetWare 6.0 Network Administration Chapter 13.
OFC 200 Microsoft Solution Accelerator for Intranets Scott Fynn Microsoft Consulting Services National Practices.
Chapter 19: Adding JavaScript
CSCE Chapter 5 (Links, Images, & Multimedia) CSCE General Applications Programming Benito Mendoza 1 By Benito Mendoza Department.
Developing and Writing Winning Individual, Corporate and Foundation Proposals Robin Heller, Director, Corporate and Foundation Philanthropy, BBBSA Robert.
Congratulations! You are part of a global community of thousands of web developers who attend Web Camps to keep their web development skills up-to-date.
Interception and Analysis Framework for Win32 Scripts (not for public release) Tim Hollebeek, Ph.D.
Web Performance and key business metrics Part II: More Findings from the Front Line of Web Acceleration.
Embedded Software SKKU 14 1 Sungkyunkwan University Tizen v2.3 Application Profiling & Debugging.
WW Last Mile End-User Instrumentation Data Aladdin A. Nassar Hotmail & Windows Live Perf Champ Hotmail, Microsoft.
Overview of Silverlight Mike Taulty Developer & Platform Group Microsoft Ltd
Developing ASP.NET AJAX Controls with Silverlight Barry Gervin Microsoft Regional Director John Bristowe Developer Advisor, Microsoft.
OCLC Online Computer Library Center 1 Social Media and Advocacy.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
PERFORMANCE ENHANCEMENT IN ASP.NET By Hassan Tariq Session #1.
Putting Performance Best Practices Together to Create the Perfect SPA Chris Love2Dev.com.
2007cs Servers on the Web. The World-Wide Web 2007 cs CSS JS HTML Server Browser JS CSS HTML Transfer of resources using HTTP.
Unleash the Power of jQuery Learning & Development Team Telerik Software Academy.
An Industry Case Study SES – Chicago: 2006 Web 2.0.
Case Study: Live Search – Moving to and then away from AJAX Eric Schurman Performance Development Lead Live Search Microsoft.
1 Isolating Web Programs in Modern Browser Architectures CS6204: Cloud Environment Spring 2011.
Dawn Pedersen. What is JavaScript? JavaScript is the basis for both jQuery and Spry applications JavaScript is referred to as a client-side scripting.
® IBM Software Group © 2003 IBM Corporation IBM WebSphere Studio V5.1.2: Making Java Development Easier May 2004.
IE Developer Tools Jonathan Seitel Program Manager.
SHAREPOINT & JQUERY. Hi, my name and I am a product manager at lightning tools. I have been working with SharePoint for 5 years.
The Web Wizard’s Guide To DHTML and CSS Chapter 2 A Review of CSS2 and JavaScript.
05 | Integrating JavaScript and MVC 4 Jon Galloway | Tech Evangelist Christopher Harrison | Head Geek.
An Architecture for Adaptive Content Extraction in Wireless Networks Phil West Greg Foster Peter Clayton Submitted to the South African Telecommunications.
OFC308 Hilton Giesenow Development Manager - 3fifteen Host –
Internet Marketing Strategies Proposal for Lucas Color Cards.
Google Analytics Graham Triggs Head of Repository Systems, Symplectic.
© 2008 Eyeblaster. All rights reserved Rich Media – How to Make a Good Impression Presented by: Vanya Jakovljevic EB Orange 246/137/51 EB Green 52/70/13.
IF STARBUCKS USED INSTART LOGIC, THEY WOULD HAVE A FASTER RESPONSIVE WEBSITE BY PETER BLUM.
Paul Andrew Technical Product Manager Microsoft Session Code: OFS212.
Technology for Mobile Network Operators Business Case: Improve Overall Service Quality and Customer Experience While Dramatically Lowering Carrier Costs.
SharePoint & jQuery. About me Phill Duffy – Product Manager at Lightning Tools Ltd – Author of ‘Pro SharePoint with jQuery’ – MCTS Application Developer.
What is Google Analytics?
JQuery Fundamentals Introduction Tutorial Videos
Fan Engagement Solution
Essential tools for implementing and testing websites
Benchmark Methodology - Update
50 Performance Tricks to Make your HTML5 apps and sites Faster
Web Caching? Web Caching:.
Microsoft SQL Server 2008 Reporting Services
Benchmark Methodology - Update
Murach's JavaScript and jQuery (3rd Ed.)
Presentation transcript:

Paul Roy, Alex Polak, Gregory Bershansky MSN Performance & Reliability Team Microsoft

Worldwide scope 48 countries >500 million users (>100 million new users in last year) >20 billion monthly page views Our mission is to make MSN the world’s fastest portal Driving this mission requires a paradigm shift in how we measure performance and its impact

Measuring performance and its impact Performance metrics Performance measurement systems A/B testing Performance case studies Tips & Summary

Goal: Performance metrics directly represent a user’s perception of performance “Good metrics drive good decisions, bad metrics drive bad decisions”

A user’s perception of web page performance is driven by two primary factors: 1.Rendering time for areas of greatest importance 2.Response time to user interactions

PastTodayCurrent Directions Measure download time of all page resources Measure download time of only visual resources Measure rendering time and response time Primary metrics Time to Last Byte Primary metrics Time to Visual Content (w/ and w/o ads) Secondary Metrics Time to First Byte, Onload, Page Bottom Primary metrics Time to Render First Render Above Fold, Header, Ads Time to Respond Scroll, Navigate, Search Box interactions, etc. Poor representation of perceived performance Fair representation of perceived performance Direct representation of perceived performance Past Today Directions Above Fold Area Human view Internal system view Paradigm Shift Header Ad

What’s possible today First Render from tools (HTTPWatch, DynaTrace, etc.) First Paint API in IE9 (extension to W3C Web Timing) Video analysis solutions (e.g., Webpagetest/Google Above Fold Time) What we need Timings for First Render & Above Fold Render Handle video and animated graphics Cross-browser solution Rendering metrics for different page regions Different regions are of varying importance to the user E.g., search box, content vs. ads, Facebook News Feed vs. navigation area Common methodology for real user & synthetic measurements Ease of use Gap

What’s possible today #notmuch What we need Methodology, standardization, tools Timings related to initial and continuous responsiveness Common methodology for real user & synthetic measurements Ease of use Gap

To browser makers Standardized cross-browser API’s for rendering timings Whole page and different regions To community Research and tools for measuring responsiveness

Goal: Comprehensive measurement capability across Synthetic and RUM systems

Measuring the real user experience Real-User “Truth” Measuring rendering and responsiveness Rendering and Responsiveness Measuring global data center and network topology Geo-Distributed Infrastructure Measuring competitor pages Competitive Measuring prototypes and internal milestones Matrix testing (browsers, OS, hardware, network bandwidth,...) In-depth analysis (traces, counters, profiling, …) Measuring prototypes and internal milestones Matrix testing (browsers, OS, hardware, network bandwidth,...) In-depth analysis (traces, counters, profiling, …) Engineering Cycle

Synthetic Performance Lab 3 rd Party Agents (Keynote) Performance Lab 3 rd Party Agents (Keynote) Real User Measurement (RUM) In-page & Server-side instrumentation Browser Plug-in (toolbar) In-page & Server-side instrumentation Browser Plug-in (toolbar) Call to Action (earlier slide)

Impact on business metrics is the ultimate truth of whether a change is worthwhile

A/B testing used to evaluate a change’s impact on business metrics Subsets of user population receive different behavior/experiences Control group vs. treatment group(s) Statistical power obtained through very large sample size MSN business metrics (subset) Page Views, Page Clicks, Page CTR Searches to Bing Ad Impressions, Ad Clicks, Ad CTR User satisfaction

Small % improvements to business metrics make a difference in the aggregate Even more so on an absolute basis at high scale MSN: >20 billion monthly page views worldwide 1% improvement = >200 million page views Performance metrics need to be excellent proxies for business metrics Enables prediction of how a change will affect the business

Caveat: your mileage may vary

Situation Page developers like using jQuery jQuery loaded synchronously from the head (v1.4.2; 25KB compressed; loaded from CDN) Blocks rendering, and download initiation of other assets (lesser so for newer browsers) Negative effect will increase over time as jQuery continues to grow.... jQuery v1.6: 229KB uncompressed (31KB compressed)

What We Did Load jQuery asynchronously Use small “Early Stage JS” library for capabilities needed immediately (6KB loaded inline) Usage tracking, Async loading, Event handling, DOM reading Zero net size increase to inline JS (some code moved to external file, offsetting 6KB increase) Impact Takeaways Loading jQuery synchronously hurts the business Note….jQuery is on 45% of the top one million web sites * …. * Source: 6/7/2011http://trends.builtwith.com/javascript Time to First Render Time to Onload Search Clicks Page Clicks ms gain250ms gain+0.5%

Situation Long running JS at page bottom (binds behavior to UI elements) What We Did – three rounds of changes in succession (additive): Change #1 – reduce total JS execution time Change #2 – defer some JS execution to scroll event (for below-fold bindings) Change #3 – defer more JS execution by 1s (for less-critical bindings) Impact Takeaways Long running JS hurts the business Impacts responsiveness (First Render not impacted) Open question: Where is the point of diminishing return for reducing JS execution time? Chang e CPU ImpactSearch Clicks Page Clicks #1400ms gain (1050->650,~40%)+1.2%+0.5% #2200ms gain (650->450, ~30%)+0.5%None #3100ms gain (450->350, ~20%)None

Situation Core content loaded first, with ads immediately following (some overlap) Big Upper Right Ad

What We Did Delayed loading of the Big Upper Right Ad by 1s Bandwidth utilization charts Blue line – core content (HTML, CSS, JS, images) Red line – ads (JS lib, ad platform calls, creatives) Impact Helped performance and some business metrics, but dramatically hurt Ad business metrics => Net lose for the business Takeaways Seek sweet spot for ad loading that yields a win-win Time to Page Bottom Time to Onload Page Clicks Page Views Ad Click Thru Rate 80ms gain500ms gain +0.5%+0.4%-15% Before After

Situation Thumbnails on Bing Search Results Page incur extra round-trips, and rendering delay relative to rest of page Note: thumbnails have low cache hit rate What We Did Use Data URI’s to embed thumbnails within base page At end of HTML (with chunked transfer encoding) to avoid blocking rendering of textual content Eliminates round-trips and extra TCP connection Impact Takeaways Embedding low cache hit rate images helps the business (especially images above the fold) Time to Onload Session Success Rate (% of search sessions with a click) ms gain (depends on # of thumbnails) +0.7%

Secure air cover Get executives bought into the performance mission (prove to them the business value) Recruit the engineers Make every engineer an improvement-maker (not just a few select gurus) Arm the engineers Great performance metrics, statistically representative Synthetic and RUM measurement systems A/B testing Permeate Drive the mission upstream into the engineering process (and downstream after shipping) Win the hearts and minds Help stakeholders see that it's possible to have performance AND richness (within reason) Drive the mission with committed goals Accountabilities are a big lever

Performance metrics need to focus on rendering and responsiveness, and need to be excellent proxies for business metrics A/B testing is critical Impact on business metrics is the ultimate truth of whether a change is worthwhile Call to Action – to browser makers Standardized cross-browser API’s for rendering timings Call to Action – to community Research and tools for measuring response time