Metrics Distribution Over Call Stacks

When interpreting the performance analysis results, you can select an object in the grid and select a performance metric in the drop-down menu of the Call Stack pane to:

  • View stacks leading to the selected object

  • Analyze the distribution of the selected performance metric per stacks of the selected object. For example, if the CPU Time metric is selected, the contribution bar shows a share of CPU time spent executing the selected stack relative to the total CPU time spent executing the selected function.

You can also select an object in the Timeline pane. In this case, the Call Stack pane displays metric data for all objects with the same stacks.

Use This Metric

To Analyze This

CPU Time

Time during which the CPU is actively executing your application on all cores.

Data of Interest (CPU Metrics)

Distribution of a CPU metric (a hardware event, CPU Time by Utilization, and others) selected as a Data of Interest per stacks.

This metric does not apply to metrics derived from context switches or from waits, even if you select it as Data of Interest in the grid.

Context Switch Time

Distribution of software thread inactive time due to a context switch, regardless of its reason (Preemption or Synchronization), over different call stacks.

This metric is available for the results of the hardware event-based sampling with stacks.

Context Switch Count

Distribution of the amount of context switches, regardless of their reason (Preemption or Synchronization), over different call stacks.

This metric is available for the results of the hardware event-based sampling with stacks.

Preemption Context Switches

Distribution of the amount of context switches where the operating system task scheduler switched a thread off a processor to run another, higher-priority thread.

This metric is available for the results of the hardware event-based sampling with stacks.

Synchronization Context Switches

Distribution of the amount of context switches where a thread was switched off because of making an explicit call to thread synchronization API or to I/O API.

This metric is available for the results of the hardware event-based sampling with stacks.

Inactive Time

Distribution of time during which a thread remained preempted from execution.

This metric is available for the results of the hardware event-based sampling with stacks.

Wait Time

Distribution of time when one thread is waiting for a signal from another thread. For example, a thread that needs a lock that is currently held by another thread, is waiting for the other thread to release the lock.

This metric is available for the Locks and Waits and Hotspots by CPU Usage viewpoints only.

Wait Time (Signal)

Distribution of Wait Time (see above) by call stacks of a signaling thread that was releasing a lock where the thread was waiting. Use this metric to identify signaling stacks resulted in long waits to optimize algorithms of the signaling thread.

This metric is available for the Locks and Waits and Hotspots by CPU Usage viewpoints only.

Wait Time (Sync Object Creation)

Distribution of Wait Time (see above) by various object creations. For example, the currently selected row in the grid may contain wait operations on various objects created in different places of the program.

This metric is available for the Locks and Waits and Hotspots by CPU Usage viewpoints only.

Wait Count

Distribution of the number of times the corresponding system wait API was called.

This metric is available for the Locks and Waits and Hotspots by CPU Usage viewpoints only.

Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.