visual studio diagnostics tools for xaml-based windows store apps

Post on 24-Feb-2016

95 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Visual Studio diagnostics tools for XAML-based Windows Store apps. Pratap Lakshman Senior Program Manager 3-322. Agenda. Performance is a feature. Pillars of performance. Diagnosis with Visual Studio. Summary. Great performance motivates app purchases. - PowerPoint PPT Presentation

TRANSCRIPT

Visual Studio diagnostics tools for XAML-based Windows Store appsPratap LakshmanSenior Program Manager3-322

Performance is a feature.Pillars of performance.Diagnosis with Visual Studio.Summary.

Agenda

User implicitly relates consistent performance with app quality.

Great performance motivates app purchases

App Fr

eezes

Crashe

s

Slow Resp

onsiv

eness

Heavy

Battery

Usage

0%10%20%30%40%50%60%70%80%

Reasons of Bad Reviews

Source: http://www.businessnewsdaily.com/

Fast.“Snappy” user interaction.Relation: app launch, navigating pages.Fluid.“Smooth” user interaction.Relation: scrolling, panning, animation.Efficient.System “citizenship”.Relation: battery life, memory usage.

Fast, fluid & efficient, are the dimensions of performance the app user perceives.

Pillars of performance

XAML UI responsiveness.Relation: fast, fluid.CPU sampling.Relation: fast, fluid.Same as the experience shipped in Visual Studio 2012.Energy consumption.Relation: efficient.Managed memory dump analysis.Relation: efficient.Designed for production diagnostics scenarios.

Post mortem profile data analysis.Supports remote profiling.“Performance and diagnostics hub” serves as the single entry point for the profilers.

…and their tooling in Visual Studio

Load/parse/build element tree/object model.Formatting (styles)/layout.Compute formats, apply templates.Measure and arrange.Build visual tree for hit-testing and rasterization.Render visible objects into primitives.Display/rasterization.Walk visual tree, rasterize to target surfaces.Composition.Independent animations, walk visual tree, to render to primary and present.

The pipeline.XAML operations broken down into frames.UI thread and composition thread can submit frames.

Fast, fluid—influence of XAML, app code

Parsing.Files parsed (time to parse, number of times parsed, number of elements).Load on the UI thread.Templates (multiplied).Content virtualization.Complex layout.Dependent animations.Load on the composition thread.Independent animations.Overdraw.App code (specifically, per frame callbacks).

Reduce complexity!Update screen content in ‘vsync’ cadence (16.7ms).App code execution can happenduring frame preparation time.

Fast, fluid—influence of XAML, app code

Demo: XAML UI responsiveness tool

Fast—analysis

Fast—analysis

Demo: CPU sampling tool

Very difficult to attribute energy usage to every resource accurately enough to make it actionable.Too many variables. That is not we are trying to do here.Empirically, CPU, display, network resources dominate.The tool discovers energy hungry segments of an app scenario.…without imposing the use of power metering hardware.…by mapping resource usage to estimated energy using a software power model.Optimize the resource usage to make the apps more energy efficient.

CPU, network, display are the resources that tend to dominate energy consumption.

Efficient—influence of system resource usage

CPU power state transitions as load varies.Display power varies by.HW implementation (smart vs. dumb LCD vs. OLED).User settings (brightness).Design choices (color content, animations).Network.Wired ≠ Wireless.Wi-Fi ≠ 2G, 3G, 4G(power management by Radio Resource Controller).Memory consumption.

Reduce CPU usage.Animations are not free. White/Bright pixel more expensive on OLED.“Network” provides hidden optimization opportunities.Look out for managed memory leaks.

Efficient—influence of CPU, display, network

Sample RRC state machine.RRC intended to support stable, scalable performance, and be battery-aware.

Efficient—influence of the Network RRC

Every data transfer will cycle the radio to high power, and reset the timeouts.

Efficient—influence of the Network RRC

Demo: energy consumption tool

Demo: managed memory dump analysis

Performance is a feature. Need to balance it across multiple dimensions.Fast, fluid & efficient are the pillars spanning the dimensions of time, energy & space.Need to manage influence of XAML, app code & system resources.Performance and Diagnostics Hub.Single point of entry for the performance tools.Post-mortem analysis.Supports remote profiling.End to end lifecycle tooling.Design-time to production.

Need to consider performance “holistically”.

Summary

ResourcesRelated sessions.WCL-157: XAML Performance Fundamentals.WCL-158: Dramatically increase performance when users interact with large amounts of data in GridView and ListView.WCL-164: What’s new in XAML.Dev-12: developing high performance websites and modern apps with JavaScript performance tools.Dev-16: diagnosing issues in JavaScript Windows Store Apps with Visual Studio.Performance documentation.http://aka.ms/fastxamlThank you!

Evaluate this session

Scan this QR code to evaluate this session and be automatically entered in a drawing to win a prize!

© 2013 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.

top related