SlideShare a Scribd company logo
Nic Jansma
@NicJ
//nicj.net
Debugging IE
Performance Issues
xperf, ETW & NavigationTiming
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
o Windows XP+
o CPU usage
o Disk usage
o Hard faults
o DPCs/ISRs
o TCP
o Profiling
o Custom app events (incl IE7+)
o 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
o WPT home
• http://msdn.microsoft.com/en-us/performance/cc825801.aspx
o Windows 7 SDK
• http://www.microsoft.com/en-us/download/details.aspx?id=8279
o Windows 8 SDK
• http://msdn.microsoft.com/en-us/windows/hardware/hh852363

Recommended for you

Building Native Experiences with Electron
Building Native Experiences with ElectronBuilding Native Experiences with Electron
Building Native Experiences with Electron

Listen to this talk! https://www.youtube.com/watch?v=JIRXVGVPzn8 Tips and tricks for creating Electron apps that look beautiful and work the way users expect.

electronexperienceatom-shell
Building desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy wayBuilding desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy way

The talk gives a brief introduction to the Electron project maintained by GitHub for building cross platform desktop applications.

web developmenttechnology
Responsive interfaces
Responsive interfacesResponsive interfaces
Responsive interfaces

The document discusses responsive interfaces and how to keep the user interface responsive when executing JavaScript. It explains that the UI thread is used for both drawing updates and running JavaScript, so no updates can happen while JavaScript runs. It recommends keeping JavaScript execution under 50ms to avoid unresponsiveness, and describes using timers and web workers to split processing over multiple ticks to keep the UI responsive.

Getting a Trace
From an elevated command prompt:
• Simple trace of system events
o xperf.exe -on latency
o [run scenario]
o xperf.exe -stop -d myscenario.etl
(latency = PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE)
• Stack-Walking on sample profiling events
o xperf.exe -on latency -stackwalk profile -setprofint 1224
o [run scenario]
o xperf.exe -stop -d myscenario.etl
• IE events
o xperf.exe -on latency -start ie -on Microsoft-IE+Microsoft-IEFRAME+Microsoft-Windows-WinINet+PerfTrack
o [run scenario]
o xperf.exe -stop -stop ie -d myscenario.etl
UIforETW
• https://github.com/google/UIforETW
• https://randomascii.wordpress.com/2015/04/14/uiforetw-
windows-performance-made-easier/
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

Recommended for you

Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript

Presentation based on experiences of building a hybrid mobile app using the Ionic framework, Cordova, AngularJS and TypeScript.

typescriptionicangularjs
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass

Session from IBM Think 2018. Note: the architecture used is an extreme case of what's possible (and it could go further), rather than a real-world expectation

dominonode-redagilit-e
AFNetworking
AFNetworking AFNetworking
AFNetworking

AFNetworking slides from my presentation at the October 2011 meeting of the Houston iPhone Developers Meetup.

iosafnetworkingiphone
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
o CMarkup_OnLoadStatusDone: Page
load is complete
o CDoc_OnPaint: Paints
o CDwnBindData_Bind: Downloads
o + 100s more
• Microsoft-IEFRAME
o Frame events such as tab creation,
navigation start, history queries,
extension loading
• Microsoft-PerfTrack-*
o -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:
o https://msdl.microsoft.com/downloa
d/symbols
o http://symbols.mozilla.org/firefox
o https://chromium-browser-
symsrv.commondatastorage.googlea
pis.com
Custom Web Events
• JavaScript ETW events
<SCRIPT type="text/javascript">
if (msWriteProfilerMark) {
msWriteProfilerMark("Mark1");
}
</SCRIPT>
• Comes in as:
o Microsoft-IEMshtml_DOM_CustomSiteEvent

Recommended for you

Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage

Overhauling one of the most visited web sites in the world is a major task, and add on top of it the pressure of keeping performance the same while adding a ton of new features, and you have quite a task. Learn how the Yahoo! homepage team achieved performance parity with the previous version even while adding a ton of new features.

yahoojavascriptperformance
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...

iOS Automation rapidly changed due to the evolution of Apple automation frameworks and Calabash community support. One year ago, we parallelised our iOS testing with multiple desktops – a large improvement in performance. Here is an account of the subsequent changes, including the removal of multiple desktops and the adoption of Apple’s new XCTest framework. The automation community (Appium, Calabash etc.) faced a new challenge: how could we create iOS Automation Infrastructure with the new XCTest Framework? I adopted Facebook solution (FBSimCtl and WebAgentDriver) into the multi-simulators approach. In this talk, I will discuss the full evolution path to Facebash Approach based on multi-simulators, Calabash server and Facebook Web Driver Agent.

qaiosmobile automation
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance

This document discusses how timers, power consumption, and performance are related on web pages. It explains that CPUs can enter low-power sleep states when idle, but timers used in JavaScript can prevent this and increase power usage. The document recommends using higher interval timers (over 15ms) when possible to improve battery life on mobile devices. It also notes that having too many concurrent timers can flood the browser's queue and negatively impact rendering performance.

javascripttimersperformance
What Can You Do?
• Slow page load performance? Take a trace!
• See page load from a system-wide perspective
o 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
o Integrate page load time / cpu usage metrics into your build system
ETW/xperf is great, but...
• 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:
o Navigation Timing: Page load timings
o User Timing: Custom site events and measurements
o Resource Timing: Resource / download times
o Page Visibility: Get visibility state
o 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+

Recommended for you

Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)

Java EE 7 provides a strong foundation for developing the back end for your HTML5 mobile applications. This heavily code-driven session shows you how you can effectively utilize Java EE 7 as a back end for your Apache Cordova mobile applications. The session demonstrates Java EE 7 technologies such as JAX-RS 2.0, WebSocket, JSON-P, CDI, and Bean Validation. It provides an overview of the basics of Apache Cordova as well as the tooling support added in NetBeans 8. The session also demonstrates an integrated approach to rapidly developing HTML5 mobile applications with Java EE 7 and NetBeans and concludes with best practices and pitfalls.

apache cordovajava ee 7javaone 2014
Meet with Meteor
Meet with MeteorMeet with Meteor
Meet with Meteor

Meteor is a platform for building modern web applications using JavaScript. It allows developers to build real-time applications using a single language across client and server. Some key features of Meteor include latency compensation, reactivity across all layers of an application, and support for mobile development. The presentation provided an overview of Meteor's principles and architecture, including data on the wire, one language, database everywhere, and latency compensation. It also demonstrated building a simple topic voting app in Meteor.

javascriptmeteorjavascript app platform
Making Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI AutomationMaking Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI Automation

Making Watir and Cucumber an efficient tool for Web UI Automation is an overview and comparison between modern Test Automation Frameworks for WebUI

rubywatircucumber
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
o 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,"unloadEven
tEnd":0,"redirectStart":0,"redirectEnd":0,"fetchStart":134850684
2513,"domainLookupStart":1348506842513,"domainLookupEnd":1348506
842513,"connectStart":1348506842513,"connectEnd":1348506842513,"
requestStart":1348506842513,"responseStart":1348506842595,"respo
nseEnd":1348506842791,"domLoading":1348506842597,"domInteractive
":1348506842616,"domContentLoadedEventStart":1348506842795,"domC
ontentLoadedEventEnd":1348506842795,"domComplete":1348506842795,
"loadEventStart":1348506842900,"loadEventEnd":1348506842900,"msF
irstPaint":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
• https://github.com/google/UIforETW
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

Recommended for you

Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"

This document discusses empowering the mobile web. It begins by defining the mobile web as the web experienced on mobile devices, with considerations for usability and responsiveness. It then addresses concerns about the web versus native apps, and outlines Mozilla's solutions including their app ecosystem with installable apps, the Firefox OS mobile platform, and APIs that allow web apps to access device capabilities. The document also covers developer experience tools and techniques to improve web app performance.

marketplacedeviceapp
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor

Meteor, or MeteorJS is an open-source real-time JavaScript web application framework written on top of Node.js. While production-ready and used by a number of high-profile startups, Meteor allows for very rapid prototyping and produces cross-platform (web, Android, iOS) code. It integrates tightly with MongoDB and uses the Distributed Data Protocol and a publish–subscribe pattern to automatically propagate data changes to clients in real-time without requiring the developer to write any synchronization code. On the client, Meteor depends on jQuery and can be used with any JavaScript UI widget library.

nodejspubsubmeteor
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...

Peter Leschev presented on how the Build Engineering team at Atlassian scaled their continuous integration infrastructure to handle a massive increase in builds from 21k per month to over 150k per month. Some key things they did were adopting infrastructure as code practices with Puppet, building stateless build agents, monitoring Bamboo servers, and using tools like Packer, Terraform, and self-service portals to improve reliability and developer experience at scale.

atlassianawscontinuous integration

More Related Content

What's hot

Develop Desktop Apps with Electron
Develop Desktop Apps with ElectronDevelop Desktop Apps with Electron
Develop Desktop Apps with Electron
Eueung Mulyana
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
Mark Friedman
 
Get that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and ElectronGet that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and Electron
Lukas Ruebbelke
 
Building Native Experiences with Electron
Building Native Experiences with ElectronBuilding Native Experiences with Electron
Building Native Experiences with Electron
Ben Gotow
 
Building desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy wayBuilding desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy way
stefanjudis
 
Responsive interfaces
Responsive interfacesResponsive interfaces
Responsive interfaces
Nicholas Zakas
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript
Serge van den Oever
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Paul Withers
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
joaopmaia
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
Nicholas Zakas
 
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
Badoo
 
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance
Nicholas Zakas
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Ryan Cuprak
 
Meet with Meteor
Meet with MeteorMeet with Meteor
Meet with Meteor
Tahmina Khatoon
 
Making Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI AutomationMaking Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI Automation
Ruslan Strazhnyk
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
Chris Mills
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
M A Hossain Tonu
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
Peter Leschev
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
ColdFusionConference
 
YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)
Nicholas Zakas
 

What's hot (20)

Develop Desktop Apps with Electron
Develop Desktop Apps with ElectronDevelop Desktop Apps with Electron
Develop Desktop Apps with Electron
 
Monitoring web application response times, a new approach
Monitoring web application response times, a new approachMonitoring web application response times, a new approach
Monitoring web application response times, a new approach
 
Get that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and ElectronGet that Corner Office with Angular 2 and Electron
Get that Corner Office with Angular 2 and Electron
 
Building Native Experiences with Electron
Building Native Experiences with ElectronBuilding Native Experiences with Electron
Building Native Experiences with Electron
 
Building desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy wayBuilding desktop applications with web technologies - ELECTRON the easy way
Building desktop applications with web technologies - ELECTRON the easy way
 
Responsive interfaces
Responsive interfacesResponsive interfaces
Responsive interfaces
 
Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript Building an Ionic hybrid mobile app with TypeScript
Building an Ionic hybrid mobile app with TypeScript
 
IBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
 
AFNetworking
AFNetworking AFNetworking
AFNetworking
 
Performance on the Yahoo! Homepage
Performance on the Yahoo! HomepagePerformance on the Yahoo! Homepage
Performance on the Yahoo! Homepage
 
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
iOS Parallel Automation: run faster than fast — Viktar Karanevich — SeleniumC...
 
JavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and PerformanceJavaScript Timers, Power Consumption, and Performance
JavaScript Timers, Power Consumption, and Performance
 
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
Hybrid Mobile Development with Apache Cordova and Java EE 7 (JavaOne 2014)
 
Meet with Meteor
Meet with MeteorMeet with Meteor
Meet with Meteor
 
Making Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI AutomationMaking Watir and Cucumber an efficient tool for Web UI Automation
Making Watir and Cucumber an efficient tool for Web UI Automation
 
Empowering the "mobile web"
Empowering the "mobile web"Empowering the "mobile web"
Empowering the "mobile web"
 
Understanding meteor
Understanding meteorUnderstanding meteor
Understanding meteor
 
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
How Atlassian's Build Engineering Team Has Scaled to 150k Builds Per Month an...
 
Intro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio CodeIntro to JavaScript Tooling in Visual Studio Code
Intro to JavaScript Tooling in Visual Studio Code
 
YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)YUI Test The Next Generation (YUIConf 2010)
YUI Test The Next Generation (YUIConf 2010)
 

Similar to Debugging IE Performance Issues with xperf, ETW and NavigationTiming

Using Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsUsing Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web Applications
Nicholas Jansma
 
IWMW 1999: Browser management
IWMW 1999: Browser managementIWMW 1999: Browser management
IWMW 1999: Browser management
IWMW
 
Net training in bhubaneswar
Net training in bhubaneswar Net training in bhubaneswar
Net training in bhubaneswar
litbbsr
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)
Jia Mi
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
Shean McManus
 
(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop
Oren Novotny
 
Quick look in Reactive Extensions
Quick look in Reactive ExtensionsQuick look in Reactive Extensions
Quick look in Reactive Extensions
johnlvidal
 
Web dev tools review
Web dev tools reviewWeb dev tools review
Web dev tools review
Changhyun Lee
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
markgrover
 
E-GEN iCAN
E-GEN iCANE-GEN iCAN
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
Adam Lu
 
Mihai_Nuta
Mihai_NutaMihai_Nuta
Mihai_Nuta
Mihai Nuta
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
Paul Jensen
 
odkk.pptx
odkk.pptxodkk.pptx
odkk.pptx
natnaelmamuye
 
Windows Phone Introduction
Windows Phone IntroductionWindows Phone Introduction
Windows Phone Introduction
Tung Nguyen Thanh
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
Patrick Lauke
 
Introduction to WebGL - 1st WebGL meetup Amsterdam
Introduction to WebGL - 1st WebGL meetup AmsterdamIntroduction to WebGL - 1st WebGL meetup Amsterdam
Introduction to WebGL - 1st WebGL meetup Amsterdam
ThreeDee Media
 
Cross-platform logging and analytics
Cross-platform logging and analyticsCross-platform logging and analytics
Cross-platform logging and analytics
Drew Crawford
 
Building desktop applications for fun with electron
Building desktop applications for fun with electronBuilding desktop applications for fun with electron
Building desktop applications for fun with electron
TMME - TECH MEETUP FOR MYANMAR ENGINEERS IN JP
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting Thoughts
Hendrik Ebel
 

Similar to Debugging IE Performance Issues with xperf, ETW and NavigationTiming (20)

Using Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web ApplicationsUsing Modern Browser APIs to Improve the Performance of Your Web Applications
Using Modern Browser APIs to Improve the Performance of Your Web Applications
 
IWMW 1999: Browser management
IWMW 1999: Browser managementIWMW 1999: Browser management
IWMW 1999: Browser management
 
Net training in bhubaneswar
Net training in bhubaneswar Net training in bhubaneswar
Net training in bhubaneswar
 
John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)John Resig Beijing 2010 (English Version)
John Resig Beijing 2010 (English Version)
 
Normalizing x pages web development
Normalizing x pages web development Normalizing x pages web development
Normalizing x pages web development
 
(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop(WPF + WinForms) * .NET Core = Modern Desktop
(WPF + WinForms) * .NET Core = Modern Desktop
 
Quick look in Reactive Extensions
Quick look in Reactive ExtensionsQuick look in Reactive Extensions
Quick look in Reactive Extensions
 
Web dev tools review
Web dev tools reviewWeb dev tools review
Web dev tools review
 
Near real-time anomaly detection at Lyft
Near real-time anomaly detection at LyftNear real-time anomaly detection at Lyft
Near real-time anomaly detection at Lyft
 
E-GEN iCAN
E-GEN iCANE-GEN iCAN
E-GEN iCAN
 
HTML5 on Mobile
HTML5 on MobileHTML5 on Mobile
HTML5 on Mobile
 
Mihai_Nuta
Mihai_NutaMihai_Nuta
Mihai_Nuta
 
Desktop apps with node webkit
Desktop apps with node webkitDesktop apps with node webkit
Desktop apps with node webkit
 
odkk.pptx
odkk.pptxodkk.pptx
odkk.pptx
 
Windows Phone Introduction
Windows Phone IntroductionWindows Phone Introduction
Windows Phone Introduction
 
openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010openMIC barcamp 11.02.2010
openMIC barcamp 11.02.2010
 
Introduction to WebGL - 1st WebGL meetup Amsterdam
Introduction to WebGL - 1st WebGL meetup AmsterdamIntroduction to WebGL - 1st WebGL meetup Amsterdam
Introduction to WebGL - 1st WebGL meetup Amsterdam
 
Cross-platform logging and analytics
Cross-platform logging and analyticsCross-platform logging and analytics
Cross-platform logging and analytics
 
Building desktop applications for fun with electron
Building desktop applications for fun with electronBuilding desktop applications for fun with electron
Building desktop applications for fun with electron
 
webOS App by Example: Sorting Thoughts
webOS App by Example: Sorting ThoughtswebOS App by Example: Sorting Thoughts
webOS App by Example: Sorting Thoughts
 

More from Nicholas Jansma

Modern Metrics (2022)
Modern Metrics (2022)Modern Metrics (2022)
Modern Metrics (2022)
Nicholas Jansma
 
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Nicholas Jansma
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
Nicholas Jansma
 
Reliably Measuring Responsiveness
Reliably Measuring ResponsivenessReliably Measuring Responsiveness
Reliably Measuring Responsiveness
Nicholas Jansma
 
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the Browser
Nicholas Jansma
 
Measuring Continuity
Measuring ContinuityMeasuring Continuity
Measuring Continuity
Nicholas Jansma
 
Measuring the Performance of Single Page Applications
Measuring the Performance of Single Page ApplicationsMeasuring the Performance of Single Page Applications
Measuring the Performance of Single Page Applications
Nicholas Jansma
 
Javascript Module Patterns
Javascript Module PatternsJavascript Module Patterns
Javascript Module Patterns
Nicholas Jansma
 
Sails.js Intro
Sails.js IntroSails.js Intro
Sails.js Intro
Nicholas Jansma
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
Nicholas Jansma
 
Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
Nicholas Jansma
 

More from Nicholas Jansma (11)

Modern Metrics (2022)
Modern Metrics (2022)Modern Metrics (2022)
Modern Metrics (2022)
 
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
Check Yourself Before You Wreck Yourself: Auditing and Improving the Performa...
 
When Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting RealWhen Third Parties Stop Being Polite... and Start Getting Real
When Third Parties Stop Being Polite... and Start Getting Real
 
Reliably Measuring Responsiveness
Reliably Measuring ResponsivenessReliably Measuring Responsiveness
Reliably Measuring Responsiveness
 
Measuring Real User Performance in the Browser
Measuring Real User Performance in the BrowserMeasuring Real User Performance in the Browser
Measuring Real User Performance in the Browser
 
Measuring Continuity
Measuring ContinuityMeasuring Continuity
Measuring Continuity
 
Measuring the Performance of Single Page Applications
Measuring the Performance of Single Page ApplicationsMeasuring the Performance of Single Page Applications
Measuring the Performance of Single Page Applications
 
Javascript Module Patterns
Javascript Module PatternsJavascript Module Patterns
Javascript Module Patterns
 
Sails.js Intro
Sails.js IntroSails.js Intro
Sails.js Intro
 
Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)Appcelerator Titanium Intro (2014)
Appcelerator Titanium Intro (2014)
 
Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
 

Recently uploaded

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
Matthew Sinclair
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
Matthew Sinclair
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
Mark Billinghurst
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 

Recently uploaded (20)

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
20240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 202420240704 QFM023 Engineering Leadership Reading List June 2024
20240704 QFM023 Engineering Leadership Reading List June 2024
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
20240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 202420240705 QFM024 Irresponsible AI Reading List June 2024
20240705 QFM024 Irresponsible AI Reading List June 2024
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Research Directions for Cross Reality Interfaces
Research Directions for Cross Reality InterfacesResearch Directions for Cross Reality Interfaces
Research Directions for Cross Reality Interfaces
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 

Debugging IE Performance Issues with xperf, ETW and NavigationTiming

  • 1. Nic Jansma @NicJ //nicj.net Debugging IE Performance Issues xperf, ETW & NavigationTiming
  • 2. 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
  • 3. What is ETW/xperf? • Event Tracing for Windows (ETW) enables the OS/apps to efficiently generate runtime tracing events o Windows XP+ o CPU usage o Disk usage o Hard faults o DPCs/ISRs o TCP o Profiling o Custom app events (incl IE7+) o 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
  • 4. Getting WPT (xperf) • Windows Performance Toolkit (WPT) • Free! • From the Windows SDK o WPT home • http://msdn.microsoft.com/en-us/performance/cc825801.aspx o Windows 7 SDK • http://www.microsoft.com/en-us/download/details.aspx?id=8279 o Windows 8 SDK • http://msdn.microsoft.com/en-us/windows/hardware/hh852363
  • 5. Getting a Trace From an elevated command prompt: • Simple trace of system events o xperf.exe -on latency o [run scenario] o xperf.exe -stop -d myscenario.etl (latency = PROC_THREAD+LOADER+DISK_IO+HARD_FAULTS+DPC+INTERRUPT+CSWITCH+PROFILE) • Stack-Walking on sample profiling events o xperf.exe -on latency -stackwalk profile -setprofint 1224 o [run scenario] o xperf.exe -stop -d myscenario.etl • IE events o xperf.exe -on latency -start ie -on Microsoft-IE+Microsoft-IEFRAME+Microsoft-Windows-WinINet+PerfTrack o [run scenario] o xperf.exe -stop -stop ie -d myscenario.etl
  • 7. 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)
  • 8. xperfview - Summary Tables • All of the graphs can be interacted with - zoom, popups, right-clicked • Summary Tables show data in tabular form
  • 9. xperfview - Generic Events • Events without associated graphs show up in Generic Events • Look for Microsoft-IE* and Microsoft-PerfTrack* events
  • 10. xperfview - IE events • Microsoft-IE events o CMarkup_OnLoadStatusDone: Page load is complete o CDoc_OnPaint: Paints o CDwnBindData_Bind: Downloads o + 100s more • Microsoft-IEFRAME o Frame events such as tab creation, navigation start, history queries, extension loading • Microsoft-PerfTrack-* o -MSHTML-Navigation - End-to-end page load time
  • 11. xperfview - Stacks • By using the -StackWalk tag, you can enable stacks on many events • Public symbol servers: o https://msdl.microsoft.com/downloa d/symbols o http://symbols.mozilla.org/firefox o https://chromium-browser- symsrv.commondatastorage.googlea pis.com
  • 12. Custom Web Events • JavaScript ETW events <SCRIPT type="text/javascript"> if (msWriteProfilerMark) { msWriteProfilerMark("Mark1"); } </SCRIPT> • Comes in as: o Microsoft-IEMshtml_DOM_CustomSiteEvent
  • 13. What Can You Do? • Slow page load performance? Take a trace! • See page load from a system-wide perspective o 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 o Integrate page load time / cpu usage metrics into your build system
  • 14. ETW/xperf is great, but... • 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
  • 15. W3C WebPerf • Founded in 2010 to give developers the ability to assess and understand performance characteristics of their applications • Specs: o Navigation Timing: Page load timings o User Timing: Custom site events and measurements o Resource Timing: Resource / download times o Page Visibility: Get visibility state o High Resolution Time: Better than Date.now() - sub-millisecond resolution, monotonically non-decreasing timestamps
  • 16. Navigation Timing • http://www.w3.org/TR/navigation-timing/ • Page load timings • Implemented in IE9+, FF7+, C6+, Android 4+
  • 17. 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 o http://ie.microsoft.com/testdrive/Performance/msPerformance/Default.html
  • 18. Navigation Timing How to Use • Sample real-world page load times • XHR back to mothership JSON.stringify(window.performance): "{"timing":{"navigationStart":0,"unloadEventStart":0,"unloadEven tEnd":0,"redirectStart":0,"redirectEnd":0,"fetchStart":134850684 2513,"domainLookupStart":1348506842513,"domainLookupEnd":1348506 842513,"connectStart":1348506842513,"connectEnd":1348506842513," requestStart":1348506842513,"responseStart":1348506842595,"respo nseEnd":1348506842791,"domLoading":1348506842597,"domInteractive ":1348506842616,"domContentLoadedEventStart":1348506842795,"domC ontentLoadedEventEnd":1348506842795,"domComplete":1348506842795, "loadEventStart":1348506842900,"loadEventEnd":1348506842900,"msF irstPaint":1348506842707},"navigation":{"redirectCount":1,"type" :0}}" Used by: • Google Analytics' Site Speed • Boomerang
  • 19. 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 • https://github.com/google/UIforETW W3C WebPerf • http://www.w3.org/2010/webperf/ • http://www.w3.org/wiki/Web_Performance/Publications • http://w3c-test.org/webperf/specs/NavigationTiming/