User Guide

  • 2020
  • 05/04/2020
  • Public Content
Contents

Memory Growth

Occurs when a block of memory is allocated but not deallocated within a specific time segment during application execution.
Problem type: Memory growth
Problem type: Memory growth
Problem type: Memory growth
ID
Code Location
Description
1
Start site
Represents a point in time.
2
Allocation site
Represents the location and associated call stack of a memory block allocated but not deallocated between the start site and end site. There may be no, one, or many allocation site code locations in a
Memory growth
problem.
3
End site
Represents a point in time.
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
    ).
void ProcessTransaction(TransactionContext x) {    ...    char* m = (char*) malloc(128);    ...    return; } void WaitForTransactions() {    ...    for (;;)    {       TransactionContext x = WaitForTransaction(); // Report end site       ProcessTransaction(x);    } }
In this example, if the user clicks the
Reset Growth Tracking
button, performs the transaction, and then clicks the
Measure Growth
button, the
Intel Inspector
reports a single allocation of 128 bytes within
ProcessTransaction
.
Possible Correction Strategies
Identify the leaked memory blocks that should have been freed and call the appropriate free routine during the lifetime of the transaction.
Intel Inspector
does not perform a
reachability
analysis. Some of the reported memory blocks may:
  • Be already unreachable
  • Become unreachable later
  • Be deallocated later
  • Be still allocated but reachable when analysis ends

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