Export (0) Print
Expand All

Performance Monitor



Counters are used to provide information about how well an operating system, application, service, or driver is performing. You can use the counter data to determine system bottlenecks and modify the system's or application's performance. The operating system, network, and devices provide counter data that an application can use to create a graphical view of how well the system is performing.

The Microsoft Surface platform provides two types of performance counters: Core and Presentation.

For more information about performance counters, see Performance Counters and Performance Counters in the .NET Framework on the MSDN Web site.

Microsoft Surface Core

The Core category provides counters to monitor the input system while Core layer applications are running.

 

Counter Description

Core - frame rate

The number of FrameReceived events per second at the Core layer.

Core - number of touches

The current number of touches over all windows for a given process.

Core - total touch count

The total number of touches since the application started.

Core - touch processing time

The average time to deliver a touch event from the Core layer, in milliseconds.

Microsoft Surface Presentation

The Presentation category provides counters to monitor the input system while Presentation layer applications are running.

 

Counter Description

Presentation - number of active manipulations

The current number of manipulations occurring over all windows for a given process.

Presentation - number of active touches

The current number of touches occurring over all windows for a given process.

Presentation - total manipulation count

The total number of manipulations since the application started.

Presentation - total touch count

The total number of touches since the application started.

Presentation - touch processing time

The average time to deliver a touch event from the Presentation layer, in milliseconds.

Monitoring Surface Performance Counters

You can use the Windows Reliability and Performance Monitor (PerfMon) to monitor Surface performance counters, but first you must add them to Performance Monitor.

Performance Monitor - Interface

To add Surface performance counters to Performance Monitor

  1. Start a Surface application. If you are using a device made for Surface, start Surface Shell, and then start a Surface application.

    TipTip
    You can add Surface performance counters only when a Surface application or Surface Shell is running.

  2. Click Start, type perfmon.exe, and then press Enter.

  3. In the left pane, under Monitoring Tools, click Performance Monitor.

  4. In the toolbar within the right pane, click the Add button (Performance Monitor - Add button).

  5. Under Available counters, scroll through the list until you see Microsoft Surface Core and Microsoft Surface Presentation.

  6. Expand the node that you are interested in, and then select the counter that you want to add.

  7. Under Instances of selected object, select the application for which you want to add the counter, or select <All instances> to add the counter for all Surface applications.

  8. Click Add >> to move the counter to the Added counters list.

    Adding Surface counters in perfmon
  9. Add any more counters that you want, and then click OK.

The counters are tracked in the chart in the right pane. Below the chart, you can select a specific counter to view its values and other information about it.

Troubleshooting by Using Performance Counters

The following table describes scenarios that show how you can use performance counters to troubleshoot Surface-related performance issues in a Surface application.

 

Scenario Solution

A Surface application does not receive any Touch events.

  1. Start PerfMon.

  2. Add the Core - number of touches counter.

If the counter is 0, the vision system is not running or the vision system does not see any touches.

Panning in SurfaceScrollViewer is not smooth.

  1. Start PerfMon.

  2. Add the Presentation - number of active manipulations counter.

  3. Add the Presentation - number of active touches counter.

  4. Add the Presentation - touch processing time counter.

If Presentation - touch processing time is high for the number of active touches and manipulations, the system is busy, and the vision system does not have enough resources to process touches. This situation typically occurs because of high CPU utilization on the system. Look for processes that overload the CPU.

You could also change the application to offload some processing to a different thread or reduce the computation load altogether.

This situation might also occur because the application is inefficiently using Windows Presentation Foundation (WPF).

When you are panning a SurfaceScrollViewer control, the IsScrolling property randomly switches between true and false.

  1. Start PerfMon.

  2. Add the Presentation - total touch count counter.

If the counter value increases while a touch moves across the Surface screen, the vision system cannot track it and treats it as a new touch with a new ID. Most likely, the panning velocity is too high for the vision system to track it.

You want to know the latency between touching the Surface screen and when your application receives notification of a new touch.

  1. Start PerfMon.

  2. Add the Core - touch processing time or Presentation - touch processing time counter.

These counters reflect the elapsed time between a driver receiving data and the corresponding touch event that is raised to the application.

Did you find this information useful? Please send us your suggestions and comments.

© Microsoft Corporation. All rights reserved.
Show:
© 2014 Microsoft