High-performance web platform

Slides:



Advertisements
Similar presentations
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Advertisements

© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
© 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
Feature: Purchase Requisitions - Requester © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
MIX 09 4/15/ :14 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
 Karsten Januszewski Developer Microsoft Corporation PC55.
Co- location Mass Market Managed Hosting ISV Hosting.
Internet Explorer 8 For Developers Gal Kogman BNL
Feature: OLE Notes Migration Utility
Session 1.
Built by Developers for Developers…. © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
 Frank Savage Architect Microsoft Corporation.
Feature: Assign an Item to Multiple Sites © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
NEXT: Overview – Sharing skills & code.
© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or.
Building Social Games for Windows 8 with Windows Azure Name Title Microsoft Corporation.
Feature: Customer Combiner and Modifier © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.
demo Instance AInstance B Read “7” Write “8”

customer.
demo © 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names.
demo Demo.
demo QueryForeign KeyInstance /sm:body()/x:Order/x:Delivery/y:TrackingId1Z
projekt202 © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are.
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks.
© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or.

DataModel VisualizationExternal Assets Workbook Excel Services API BrowserRich Apps EWA JSOMBrowser REST BrowserRich Apps.
 Sameer Chabungbam Program Manager Microsoft Corporation PC53.
MIX 09 4/17/2018 4:41 PM © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
50 Performance Tricks to Make your HTML5 apps and sites Faster
The Future of C# The Future of C# and VB 2-577
WebView: Bringing the web to your app
Build /4/2018 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Build /24/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Building beautiful and interactive apps with HTML5 & CSS3
Возможности Excel 2010, о которых следует знать
Office Power Hour New developer APIs and features for Apps for Office
TechEd /14/2018 6:26 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
HTML5 Platform from Web to Apps
Building modern web applications with Visual Studio and Web Essentials
Tooling and Diagnostics
Delivering great performance and battery life
Build /2/ The future of Azure devops: Building and managing cloud applications lifecycle across your teams Bradley Millington Program.
Title of Presentation 12/2/2018 3:48 PM
Windows Summit /4/2018 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Building responsive apps and sites with HTML5 web workers
Quality & Performance for XAML Apps
Customizing WPA Trace Views
Blending the web with Windows
Windows Phone application performance and optimization
ASP.NET 4.5 loves HTML5, CSS3 & JavaScript
Introduction to the new WPA user interface
IE11’s Developer Tools, F12, just got nicer (again)
8/04/2019 9:13 PM © 2006 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered.
4/20/2019 Share © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or.
Виктор Хаджийски Катедра “Металургия на желязото и металолеене”
Windows Summit /23/2019 © 2010 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be.
Build /4/ Diagnosing issues with Windows Phone 8.1 JavaScript apps using Visual Studio Andy Sterland Senior Program
PENSACOLA ENERGY WORK PLAN OCTOBER 10, 2016
Шитманов Дархан Қаражанұлы Тарих пәнінің
The complete developer's guide to the SkyDrive API
Title of Presentation 5/24/2019 1:26 PM
Windows Desktop Development: A Panel Discussion
Build 2014 Josh Williams, Engineer Ryan J. Salva, Program Manager
Build /24/ What's new for Azure developers in Visual Studio 2013 update 2 and Azure SDK 2.3 Dan Fernandez Principal PM
Presentation transcript:

High-performance web platform 4-556 High-performance web platform Tobin Titus - @tobint Internet Explorer Program Manager tobint@microsoft.com

Agenda Physical Performance Limits Web Runtime Architecture Demos: Problems and Solutions

The Physics of Fast Physical Factors in Performance Decision Making

Network Utilization and Limits Source: Network Utilization and Limits Bandwidth, latency, and limited-data plans affect network performance

Speed and Responsiveness Effective utilization of resources affect both real and perceived performance Utilization CPU Time to Glass (.65 seconds) Elapsed Page Load Time (1.81 seconds) CPU Time (1.39 seconds) Idle CPU Time (0.42 seconds)

Memory Utilization Responsible memory management is crucial when targeting low-cost devices with your sites and apps

Power Consumption Let it rest! Power efficiency can drain your users’ battery and decrease satisfaction with your application VSync Utilization GPU Utilization CPU

Targets Matter It is increasingly imperative to identify your target devices, customers, and scenarios and prioritize the experience you want to deliver

Web Runtime Architecture

Web Runtime Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree 1 2 7 4 3 8 9 5 6 Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree Display Tree 1 2 7 4 3 8 9 5 6 Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Web Platform Architecture DMANIP Hit Testing CSS Cascade Input 1 2 7 4 3 8 9 5 6 DOM Tree 1 2 7 4 3 8 9 5 6 Display Tree Networking / Cache Parsers Formatting Layout Painting Compositing DOM API & Capabilities JavaScript

Event Tracing for Windows (ETW) Build 2012 11/17/2018 Event Tracing for Windows (ETW) Event Tracing for Windows (ETW) allows us to see how our the web platform architecture Session Control controller Enable / Disable Windows ETW Provider A Session Buffer Trace Files Provider B Provider C consumer © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Measuring Performance F12 Developer Tools Testing tools help you analyze and measure performance Windows Performance Toolkit

Performance in the Real World Real-world problems and solutions

Network Optimization Getting your content to the user

Navigation Timing Prompt for Unload Redirect AppCache DNS TCP Request connectStart loadEventEnd navigationStart secureConnectionStart loadEventStart redirectStart connectEnd redirectEnd requestStart fetchStart responseStart responseEnd Prompt for Unload Redirect AppCache DNS TCP Request Response Processing Load Unload DOMContentLoaded unloadEventStart domainLookupStart unloadEventEnd domainLookupEnd domLoading domInteractive domComplete domContentLoadedEventStart domContentLoadedEventEnd

Average Payload 1.7 MB Total Size, 46% Cacheable Source: Average Payload 93 resource requests, 16 Hosts 1.7 MB Total Size, 46% Cacheable

Demos: Network Optimization

Speed and Responsiveness Effective processor and graphics card utilization

CPU/GPU: A Tale of Two News Sites 35 seconds 4.5 seconds

Demos: Speed and Responsiveness

Memory Management

Download Size vs Memory Size Dimensions: 683 x 1024 Color Space: RGBA Disk Size: 557 KB Memory: width * height * 4 Download sizes may seem small, but image memory adds up very quickly 2.67 MB Decoded

Images: Downloading Request Partial Response Received Decoding

Images: Continue Downloading Request Request Partial Response Received Partial Response Received Decoding

Images : Decoding Request Partial Response Received

Images: Processing Request Partial Response Received Decoding Processing

Images: Copy to the GPU Request Partial Response Received Copy to GPU Decoding Processing

Images: Download to Display Request Partial Response Received Partial Response Received Copy to GPU Display Decoding Processing

Images: Download to Display Request Partial Response Received Partial Response Received Copy to GPU Display Decoding Processing Downloads Stylesheet HTML Doc Image CPU Usage Decode UI Thread GPU Copy GPU Usage GPU Usage

RGB to YCbCr Color Conversion Image Formats Matter Image formats matter for both memory and CPU utilization RGB YCbCr (YUV) Encode & Save RGB to YCbCr Color Conversion Chroma Subsampling DCT / Quantization Huffman Encoding

JPEG – From Download to Display Copy to GPU Request Partial Data Display Processing Decoding IE 10 Before IE 11, JPEG images were decoded, upsampled and color-converted on the CPU before copying them to the GPU In IE11, we’ve hardware accelerated JPEG. Now JPEG has all the benefit of small file size as well as decreased CPU decoding, smaller graphics memory footprint, and faster GPU copy operations Copy to GPU Request Partial Data Display Decoding Processing IE 11 Huffman Decoding Dequantization / iDCT Chroma Upsampling YCbCr to RGB Color Conversion Decode

Demos: Memory Management

Summary

Resources Overview Concepts JavaScript Patterns Microsoft Guidance High Performance Websites Steve Souders, September 2007 Event Faster Websites: Best Practices Steve Souders, June 2009 High Performance Browser Networking Ilya Grigorik, September 2013 JavaScript Patterns High Performance JavaScript Nicholas Zakas, March 2010 JavaScript the Good Parts Douglas Crockford, May 2008 Stoyan Stefanov, September 2010 JavaScript Cookbook Shelley Powers, July 2010 Microsoft Guidance Windows Store App: JavaScript Best Practices MSDN, December 2012 Performance Tricks to Make Apps & Sites Faster Jatinder Mann, Build 2012 50 Performance Tricks for Windows Store Apps Jason Weber, Build 2011 Engineering Excellence Performance Guidance Jason Weber, EE Forum 2011 Internet Explorer Architectural Overview Jason Weber, PDC 2011 W3C Web Performance Web Performance Working Group Homepage Navigation Timing Specification Blog Posts Measuring Performance with ETW/XPerf Measuring Performance in Lab Environments Browser Subsystems Overview What Common Benchmarks Measure Tools Windows Performance Toolkit Fiddler Web Debugger Contact Tobin Titus Twitter: @tobint Email: tobint@microsoft.com

Your Feedback is Important Build 2014 11/17/2018 Your Feedback is Important Fill out an evaluation of this session and help shape future events. Scan the QR code to evaluate this session on your mobile device. You’ll also be entered into a daily prize drawing! © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

© 2014 Microsoft Corporation. All rights reserved © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.