430 likes | 636 Views
Web Runtime Performance. Tobin Titus Program Manager 3-068. Agenda. Defining Performance Web Runtime Architecture Performance Measurement Tools Walkthroughs / Demos. Performance Exercise. How much do you know about performance?. Travel Site Content.
E N D
Web Runtime Performance Tobin Titus Program Manager 3-068
Agenda • Defining Performance • Web Runtime Architecture • Performance Measurement Tools • Walkthroughs / Demos
Performance Exercise How much do you know about performance?
Travel Site Content • Anonymized data from each of the travel sites Other jQuery YUI Prototype ExtJS Scriptaculous
Travel Site Content – Total Size • Total size differs by almost a factor of four Other jQuery YUI Prototype ExtJS Scriptaculous
Travel Site Content – Number Elements • Constructed DOM elements differs by over a factor of four Other jQuery YUI Prototype ExtJS Scriptaculous
Travel Site Content – CSS Rules • Total CSS rules vary by nearly a factor of five Other jQuery YUI Prototype ExtJS Scriptaculous
Travel Site Content – Image Files • The image files downloaded on the sites vary by a factor of eleven Other jQuery YUI Prototype ExtJS Scriptaculous
Travel Site Content – Script Lines • Formatted JavaScript lines vary by almost a factor of eight Other jQuery YUI Prototype ExtJS Scriptaculous
Travel Site Content – Script Libraries • Every site uses jQuery at the minimum but sites #1 and #2 are using additional libraries and frameworks as well. Other jQuery YUI Prototype ExtJS Scriptaculous
Site #5 Is Fastest • Site #5 is the fastest despite having three times more script lines than sites #3 and #4 Other jQuery YUI Prototype ExtJS Scriptaculous
Site #2 is Slowest • Site #2 is the slowest despite having relatively low number of elements and staying in the middle of the pack on the other metrics. Other jQuery YUI Prototype ExtJS Scriptaculous
Web Performance Factors What Makes Sites Faster?
Core 1 Core 2 GPU Core 3 Core 4
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Touch Hit Testing CSS Cascade Input DOM Tree Display Tree 1 1 Networking Parsers Formatting Layout Compositing Painting 2 7 2 7 3 4 8 9 3 4 8 9 5 6 5 6 DOM API & Capabilities JavaScript
Event Tracing for Windows (ETW) Session Control controller • Event Tracing for Windows (ETW) allows us to see into the web platform architecture Enable / Disable Windows ETW Session Buffer Provider A Trace Files Provider B Provider C consumer
Windows Performance Toolkit • Windows Performance Toolkit contains an ETW controller (Windows Performance Recorder) and an ETW consumer (Windows Performance Analyzer) that we can use to analyze performance. • Windows Performance Toolkit:http://aka.ms/performance • Measuring Browser Performance: • http://aka.ms/MeasureBrowserPerf
Demos • Exposing Runtime Performance Patterns with Windows Performance Toolkit
Summary • Understanding the web platform architecture is critical to performance • WPT is a powerful measurement tool • Profiling your site can help you identify your sites characteristics
Additional IE Talks • Related Build Presentations • 2-066 New IE Developer Tools • 2-067 New Platform Capabilities for Advancing Web Development • 3-069 Web Compatibility and Same Markup • 3-071 Lighting up your site on Windows 8.1 • 4-072 Hyper-fast web graphics with WebGL • 4-073 Inspecting & Debugging Using IE’s New F12 Developer Tools • 3-089: Building media streaming apps and sites without plug-ins using MPEG-DASH
Questions? • Tobin Titus Twitter: @tobint Email: tobint@microsoft.com
Required Slide *delete this box when your slide is finalized Your MS Tag will be inserted here during the final scrub. Evaluate this session • Scan this QR codeto evaluate this session and be automatically entered in a drawing to win a prize!