User Guide

  • 2020
  • 09/09/2020
  • Public Content
Contents

Measuring Memory Growth

Intel Inspector
distinguishes among
Memory leak
,
Memory not deallocated
, and
Memory growth
problem types in the following manner:
  • Memory leak
    problems occur when a block of memory is allocated, never deallocated, and not reachable (there is no pointer available to deallocate the block). Severity level = Error severity icon (
    Error
    ).
  • Memory not deallocated
    problems occur when a block of memory is allocated, never deallocated, but still reachable at application exit (there is a pointer available to deallocate the block). Severity level = Warning severity icon (
    Warning
    ).
  • Memory growth
    problems occur when a block of memory is allocated, but not deallocated, within a specific time segment during application execution. Severity level = Warning severity icon (
    Warning
    ).
Intel Inspector
can measure memory growth to help you ensure an application uses no more memory than expected. This includes:
  • Memory an application has allocated and still needs for future calculations
  • Memory an application has allocated and no longer needs, but has not deallocated
  • Memory an application has allocated and then leaked
Intel Inspector
does not perform a reachability analysis on detected
Memory growth
problems.
To measure memory growth:
Prerequisites:
  • Select the
    Enable memory growth detection
    checkbox when configuring a memory error analysis.
  • Run the memory error analysis.
Steps:
  1. If desired, click the
    Reset Growth Tracking
    button on the
    Command
    toolbar to mark the start point of the time period during which you want to measure memory growth. (The default start point is the application start.)
    Outcome: The
    Intel Inspector
    marks the memory usage graph on the
    Collection Log
    pane with a reset request icon.
  2. When desired, click the
    Measure Growth
    button to mark the end point of the time period and measure how much memory has grown since the start point.
    Outcome: The
    Intel Inspector
    marks the memory usage graph on the
    Collection Log
    pane with a measurement request icon and generates a
    Memory Growth
    problem that contains a code location for the start marker, for the end marker, and for any block of memory that was allocated, but not deallocated, during the time period.
  3. Do one or more of the following:
    To Do This
    Do This
    Review memory growth.
    Click the
    Summary
    button to check the
    Memory growth
    problem for any code locations other than a start and end marker.
    Continue measuring memory growth from the previous start point.
    Repeat step 2.
    Measure memory growth from a new start point.
    Repeat steps 1 and 2.
  4. When you are finished measuring memory growth, exit the application to end analysis.
    Outcome: The
    Intel Inspector
    finalizes and displays the result.
For more precision, consider using the GUI-based memory growth detection commands in tandem with APIs for custom memory allocation.

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