User Guide

Contents

Window: Bottom-up

Use the
Bottom-up
window to analyze performance of each program from the bottom level when a child function is placed directly above its parent (
bottom-up analysis
).
To access this window:
Click the
Bottom-up
tab. Depending on the analysis type, the
Bottom-up
window may include the following panes:

Bottom-up Pane

Data provided in the Bottom-up pane depends on the analysis, data collection type, and viewpoint you apply.
Grouping
menu. Each row in the grid corresponds to a grouping level (granularity) of program units (module, function, synchronization object, and others). For example, the data in the Hotspots viewpoint is grouped by
Function/Call Stack
.
Call stack
. Analyze a tree hierarchy of the call stacks that lead to the selected program unit. Click the triangle sign to expand a row and view call trees for each program unit. Each tree is a call stack that called the selected unit. Each tree lists all the program units that had only one caller in the same row, with an arrow indicating the call relationship. Program units that had more than one caller are split so that each caller has a separate row with the callers to that callee. If a function was called from different code lines () in the same parent function, the Bottom-up pane aggregates such stacks into one and sums up their CPU time. The full information on the stack is shown in the
Call Stack
pane.
The time value for a row is equal to the sum of all the nested items from that row.
  • Call stack information is always available for the results of the User-Mode Sampling collection. It is also available for the results of the hardware event-based sampling collection, if you enabled the
    Collect stacks
    option during the analysis configuration. Otherwise, the
    Call Stack
    column for the event-based results shows "Unknown" entries in the call tree.
  • If you see
    [Unknown frame(s)]
    identifiers for the functions, it means that the
    VTune
    Profiler
    could not locate symbol files for system or your application modules. See the Resolving Unknown Frame(s) topic for more details.
  • If the
    VTune
    Profiler
    does not find debug information in binaries, it statically identifies function boundaries and assigns hotspot addresses to generated pseudo names
    func@
    address
    for such functions, for example:
Performance metrics
. Each data column in the grid corresponds to a performance metric. By default, all program units are sorted in the descending order by metric values in the fist column providing the most performance-critical program units first. You may click a column header to sort the table by the required metric.
The list of performance metrics varies depending on the analysis type. Mouse over a column header (metric) to read the metric description, or right-click and select the
What's This Column?
option from the context menu.
If a metric has a threshold value set up by the
VTune
Profiler
architect and this value is exceeded, the
VTune
Profiler
highlights such a value in pink. You may mouse over a pink cell to read the description of the detected issue and tuning advice for this issue.
For some analysis types, you may see grayed out metric values in the grid, which indicates that the data collected for such a metric is unreliable. This may happen, for example, if the number of samples collected for PMU events is too low. In this case, when you hover over such an unreliable metric value, the
VTune
Profiler
displays a message:
The amount of collected PMU samples is too low to reliably calculate the metric
.
Depending on the analysis type and viewpoint, the Bottom-up view may represent the CPU Time by utilization levels. Focus your tuning efforts on the program units with the largest
Poor
value. This means that during the execution of these program units your application underutilized the CPU time. The overall goal of optimization is to achieve
Ideal
(green ) or
OK
(orange ) CPU utilization state and shorten the Poor and Over CPU utilization values.
Toolbar
. Select the following options to manage the Bottom-up view:
  • Click the
    Customize Grouping
    button to open the Custom Grouping dialog box.
  • Click the
    Find
    button to open a search bar and search for a string in the grid.
  • Click the
    Change Stack Layout
    button to switch between call stack layouts.
    Chain layouts are typically more useful for the bottom-up view:
    While tree layouts are more natural for the top-down view:

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804