Windows Store App Analysis
WPA now includes capabilities that help you analyze Windows Store app performance. Watch the video below for a quick overview of some of these features:
WPA includes a set of profiles that help jumpstart your Windows Store app analysis. These profiles are contained in the Profile Catalog that can be found when you apply a profile to an open trace:
AppLaunch – Contains presets in a view that is geared for app launch analysis.
XAMLApplicationAnalysis – Contains all the presets and views necessary to get started with analyzing your XAML-based Windows Store app.
HTMLApplicationAnalysis – Contains all the presets and views necessary to get started with analyzing your HTML-based Windows Store app.
For more information about profiles, see View Profiles.
For more information, including videos that get you started with the Windows store app analysis profiles, see the following links:
The Attributed CPU Usage graph contains the following presets that break down CPU usage in your Windows Store app:
DWM Thread CPU Breakdown
HTML Render Thread CPU Breakdown
HTML UI Thread CPU Breakdown
Known Thread CPU Breakdown
Utilization by Process, Thread, Activity
XAML Render Thread CPU Breakdown
XAML UI Thread CPU Breakdown
If you hover over the bars in the graph, you can see additional metadata for the corresponding activity.
In the Attributed CPU Usage table, the Thread Name column helps you quickly identify key threads in your app. In the screenshot below, you can see the HTML UI Thread, a named thread that does some work during the Layout activity:
|The Attributed CPU Usage table relies on regions of interest definitions to attribute CPU usage to different activities. When you use multiple regions files, different regions of interest can overlap and conflict. When these conflicts occur, WPA is unable to accurately attribute a single activity to a given thread in a given time range. To avoid these potential conflicts, use only one region definition file at a time.|
Windows Store apps use different threads to do different types of work. For example, the XAML UI thread passes work to the render thread to draw to the screen. WPA uses descriptive thread names to clearly identify what the thread is doing. Knowing which of the many threads in your table is the render thread and which is the XAML UI thread allows you to look for particular patterns of behavior, especially between threads.
The image above shows activity from the XAML UI thread, the XAML Render thread, and the Desktop Window Manager (DWM) thread.