Debugging IE Performance Issues xperf, ETW & NavigationTiming

Slides:



Advertisements
Similar presentations
Facts about Welcome to this video from Ozeki. In this video I will present what makes Ozeki Phone System XE the Worlds best on-site software PBX for Windows.
Advertisements

Web Toolkit Julie George & Ronald Lopez 1. Requirements  Java SDK version 1.5 or later  Apache Ant is also necessary to run command line arguments 
By the end of this section, you will know and understand the hardware and software involved in making a LAN!
Anderson Quach (Microsoft) Tony Gentilcore (Google)
Web Forms and ASP.NET Programming Right from the Start with Visual Basic.NET 1/e 12.
Instant Queue IBM Techline Instant Queue Manager Deployed for IBM Techline Richard Brader IBM Techline January 2012.
XP Information Technology Center - KFUPM1 Microsoft Office FrontPage 2003 Creating a Web Site.
ETW Session xPerfView xPerf 2. ETW contains a collection of configurable in-memory buffers 1. Any component that has been instrumented.
Introduction to eValid Presentation Outline What is eValid? About eValid, Inc. eValid Features System Architecture eValid Functional Design Script Log.
Objective Familiarize you with the tools for app analysis.
Selenium – Testing Tool. What is Selenium? Selenium is a robust set of tools that supports rapid development of test automation for web-based applications.
Ligthning Velocity FREE
Amazon EC2 Quick Start adapted from EC2_GetStarted.html.
Presented by…. Group 2 1. Programming language 2Introduction.
DNN Performance & Scalability Planning, Evaluating & Improving : Part 2.
CITS1231 Web Technologies JavaScript and Document Object Model.
XP Tutorial 4 New Perspectives on JavaScript, Comprehensive1 Working with Objects Creating an Animated Web Page.
2. Introduction to the Visual Studio.NET IDE. Chapter Outline Overview of the Visual Studio.NET IDE Overview of the Visual Studio.NET IDE Menu Bar and.
1 Tradedoubler & Mobile Mobile web & app tracking technical overview.
Leveraging ArcGIS Online Elevation and Hydrology Services
Implementation - Part 2 CPS 181s March 18, Pieces of the Site-building Puzzle Page 180, figure 4.1.
demo ETL file Event Providers Control/Status Control/Status ETW Session 2. Any component that has been instrumented with Event.
What’s New for Web Developers in ASP.NET and Visual Studio 2008 Kate Gregory Microsoft Regional Director
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
Developer TECH REFRESH 15 Junho 2015 #pttechrefres h Understand your end-users and your app with Application Insights.
Software Architecture in Practice Practical Exercise in Performance Engineering.
Extend the Operations Dashboard with Custom Widgets (and more)
1 Isolating Web Programs in Modern Browser Architectures CS6204: Cloud Environment Spring 2011.
Javascript JavaScript is what is called a client-side scripting language:  a programming language that runs inside an Internet browser (a browser is also.
ASP. ASP is a powerful tool for making dynamic and interactive Web pages An ASP file can contain text, HTML tags and scripts. Scripts in an ASP file are.
Maximizing Windows 7 Performance: Troubleshooting Tips Johan Arwidmark Chief Technical Architect Knowledge Factory WCL327.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
LESSON 15 – UNIT 0 ADAPTING YOUR WEB SITE FOR MOBILE DEVICES.
30 Copyright © 2009, Oracle. All rights reserved. Using Oracle Business Intelligence Delivers.
PHP and AJAX. Servers and Clients For many years we tried to move as much as possible to the server. Weak clients, poor bandwidth, browser compatibility..
Test Automation For Web-Based Applications Portnov Computer School Presenter: Ellie Skobel.
ITMT Windows 7 Configuration Chapter 7 – Working with Applications.
Msdevcon.ru#msdevcon. ИЗ ПЕРВЫХ РУК: КАК СДЕЛАТЬ ВАШ КОД БЫСТРЫМ ПРОФАЙЛИНГ КЛИЕНТСКИХ И СЕРВЕРНЫХ ПРИЛОЖЕНИЙ В VISUAL STUDIO 2012 MAXIM GOLDIN Senior.
ASP.NET 2.0 Mohammed Abdelhadi Developer.NET Evangelist Microsoft Corporation.
What is Google Analytics?
Understanding and Improving Server Performance
12 | Monitoring Office 365 Anthony Steven | Principal Technologist, Content Master Martin Coetzer | Portfolio Architect, Microsoft.
Developing GIS WebParts in SharePoint
Introduction and Principles
Jeffery S. Horsburgh Utah State University
Working with Client-Side Scripting
Chrome Developer Tools
@NicJ
Microsoft Office Illustrated
Maximizing Windows 7 Performance: Troubleshooting Tips
INSTALLING AND SETTING UP APACHE2 IN A LINUX ENVIRONMENT
Unit 27 - Web Server Scripting
TechEd /14/2018 6:26 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered.
Myth Busting: Top 5 Web App Myths
High-performance web platform
5 things you didn’t know you can BUILD with Microsoft Edge
Users Manage Terabytes of Data with Powerful and Agnostic Hosting from Azure Cloud Service Partner Logo “Given the challenges we face both in dealing with.
PerfView Measure and Improve Your App’s Performance for Free
Nic //nicj.net Using Modern Browser APIs to Improve the Performance of Your Web Applications Nic //nicj.net.
Office 365 Development.
2/24/2019 6:15 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
SharePoint Foundation 2010
Web-Applications & AJAX
How to debug a website using IE F12 tools
5/16/2019 Windows Performance Jump Start Chell Sterioff Milad Aslaner Sr. Program Manager Premier Field Engineer Microsoft Corporation Microsoft.
Introduction to ASP.NET Parts 1 & 2
Generate Data with Google Analytics SQL Saturday /04/2019.
Who is Using your webSite?
Running C# in the browser
Yale Digital Conference 2019
Presentation transcript:

Nic Jansma @NicJ //nicj.net Debugging IE Performance Issues xperf, ETW & NavigationTiming Nic Jansma @NicJ //nicj.net

nic@nicj.net @NicJ http://nicj.net Who am I? Nic Jansma Microsoft Sr. Developer (2005-2011) Windows 7 & IE 9/10 Performance Teams Founding member of W3C WebPerf WG Back to GR / founded Wolverine Digital Developing high-performance websites and apps nic@nicj.net @NicJ http://nicj.net http://github.com/nicjansma

What is ETW/xperf? Event Tracing for Windows (ETW) enables the OS/apps to efficiently generate runtime tracing events Windows XP+ CPU usage Disk usage Hard faults DPCs/ISRs TCP Profiling Custom app events (incl IE7+) Stacks on most of the above xperf is a toolset used to trace/view ETW events Use ETW/xperf to trace page loads of browsers IE9 load of cnn.com

Getting WPT (xperf) Windows Performance Toolkit (WPT) Free! From the Windows SDK WPT home http://msdn.microsoft.com/en-us/performance/cc825801.aspx Windows 7 SDK http://www.microsoft.com/en-us/download/details.aspx?id=8279 Windows 8 SDK http://msdn.microsoft.com/en-us/windows/hardware/hh852363

Getting a Trace From an elevated command prompt: Simple trace of system events xperf.exe -on latency [run scenario] xperf.exe -stop -d myscenario.etl (latency = PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE) Stack-Walking on sample profiling events xperf.exe -on latency -stackwalk profile -setprofint 1224 IE events xperf.exe -on latency -start ie -on Microsoft-IE+Microsoft-IEFRAME+Microsoft-Windows-WinINet+PerfTrack xperf.exe -stop -stop ie -d myscenario.etl

xperfview xperfview gives you a timeline view of the events in the .etl (1) Use the drop-downs to filter out specific processes (2) Use the left fly-out to see different graphs (3)

xperfview - Summary Tables All of the graphs can be interacted with - zoom, popups, right-clicked Summary Tables show data in tabular form

xperfview - Generic Events Events without associated graphs show up in Generic Events Look for Microsoft-IE* and Microsoft-PerfTrack* events

xperfview - IE events Microsoft-IE events Microsoft-IEFRAME CMarkup_OnLoadStatusDone: Page load is complete CDoc_OnPaint: Paints CDwnBindData_Bind: Downloads + 100s more Microsoft-IEFRAME Frame events such as tab creation, navigation start, history queries, extension loading Microsoft-PerfTrack-* -MSHTML-Navigation - End-to-end page load time

xperfview - Stacks By using the -StackWalk tag, you can enable stacks on many events Public symbol servers: http://msdl.microsoft.com/download/symbols http://symbols.mozilla.org/firefox http://chromium-browser-symsrv.commondatastorage.googleapis.com

Custom Web Events JavaScript ETW events Comes in as: <SCRIPT type="text/javascript"> if (msWriteProfilerMark) { msWriteProfilerMark("Mark1"); } </SCRIPT> Comes in as: Microsoft-IE\Mshtml_DOM_CustomSiteEvent

What Can You Do? Slow page load performance? Take a trace! See page load from a system-wide perspective Isolate page-load from interference due to other CPU/disk/network activity Compare IE/FF/Chrome browser page-load times and resource usage Examine browser CPU usage hot-spots from sampled profile stacks Automated page-load regression testing of browsers via command-line tools Integrate page load time / cpu usage metrics into your build system

ETW/xperf is great, but... W3C WebPerf WG Your development machine isn’t your customer’s machine How does your website behave in the real world? Enter... W3C WebPerf WG Navigation Timing, User Timing, Resource Timing Performance Timeline, Page Visibility, High Resolution Time

W3C WebPerf Founded in 2010 to give developers the ability to assess and understand performance characteristics of their applications Specs: Navigation Timing: Page load timings User Timing: Custom site events and measurements Resource Timing: Resource / download times Page Visibility: Get visibility state High Resolution Time: Better than Date.now() - sub-millisecond resolution, monotonically non-decreasing timestamps

Navigation Timing http://www.w3.org/TR/navigation-timing/ Page load timings Implemented in IE9+, FF7+, C6+, Android 4+

Navigation Timing API available from the DOM (window.performance.timing) Get real-world page-load timings from your users via JavaScript <script type="text/javascript"> window.addEventListener("load", loadTime, false); function loadTime() { var now = new Date().getTime(); var pageLoadTime = now - performance.timing.navigationStart; } </script> Many other sub-timings (DNS, connect, request, response, redirects, DOM events, load event) Demo http://ie.microsoft.com/testdrive/Performance/msPerformance/Default.html

Navigation Timing How to Use Sample real-world page load times XHR back to mothership JSON.stringify(window.performance): "{"timing":{"navigationStart":0,"unloadEventStart":0,"unloadEventEnd":0,"redirectStart":0,"redirectEnd":0,"fetchStart":1348506842513,"domainLookupStart":1348506842513,"domainLookupEnd":1348506842513,"connectStart":1348506842513,"connectEnd":1348506842513,"requestStart":1348506842513,"responseStart":1348506842595,"responseEnd":1348506842791,"domLoading":1348506842597,"domInteractive":1348506842616,"domContentLoadedEventStart":1348506842795,"domContentLoadedEventEnd":1348506842795,"domComplete":1348506842795,"loadEventStart":1348506842900,"loadEventEnd":1348506842900,"msFirstPaint":1348506842707},"navigation":{"redirectCount":1,"type":0}}" Used by: Google Analytics' Site Speed Boomerang

Links Xperf/ETW http://msdn.microsoft.com/en-us/performance/cc825801.aspx http://blogs.msdn.com/b/ie/archive/2010/06/21/measuring-browser-performance-with-the-windows-performance-tools.aspx W3C WebPerf http://www.w3.org/2010/webperf/ http://www.w3.org/wiki/Web_Performance/Publications http://w3c-test.org/webperf/specs/NavigationTiming/

Questions? @NicJ nic@nicj.net