Why collect heap tracing data?
Collecting heap tracing data can help you identify memory leaks in your program or locate places where there is inefficient use of dynamic memory.
How is heap tracing data collected by the Collector?
The Collector interposes wrapper functions on the C standard library memory allocation functions malloc, realloc, and memalign and the deallocation function free. The Fortran subroutines allocate and deallocate call the C standard library functions, so these subroutines are also traced indirectly.
What heap tracing metrics can I see in the Performance Analyzer?
Heap tracing data is converted into the following metrics:
Metric | Definition |
---|---|
Allocations | The number of calls to the memory allocation functions. |
Bytes allocated | The sum of the number of bytes allocated in each call to the memory allocation functions. |
Leaks | The number of calls to the memory allocation functions that did not have a corresponding call to free. |
Bytes leaked | The number of bytes that were allocated but not freed. |
What are the limitations on heap tracing data collection?
You cannot collect heap tracing data from a program that is already running unless the Collector library, libcollector.so, has been preloaded. See Collecting Performance Data on a Running Process for more information.
JavaTM memory allocations and deallocations are not traced.
For more information, see the Performance Analyzer manual.
See Also | |
---|---|
Collecting Performance Data |