Dumping Memory Statistics
The CMemoryState member function Difference determines the difference between two memory-state objects. It detects any objects that were not deallocated from the heap between the beginning and end memory-state snapshots.
To dump memory statistics
The following example (continuing the example from the previous topic) shows how to call DumpStatistics to get information about the objects that have not been deallocated:
if( diffMemState.Difference( oldMemState, newMemState ) ) { TRACE( "Memory leaked!\n" ); diffMemState.DumpStatistics(); }
A sample dump from the example above is shown here:
0 bytes in 0 Free Blocks 22 bytes in 1 Object Blocks 45 bytes in 4 Non-Object Blocks Largest number used: 67 bytes Total allocations: 67 bytes
The first line describes the number of blocks whose deallocation was delayed if afxMemDF was set to delayFreeMemDF. For a description of afxMemDF, see the procedure “To select specific memory diagnostic features with afxMemDF” presented under Memory Diagnostics.
The second line describes how many objects remain allocated on the heap.
The third line describes how many nonobject blocks (arrays or structures allocated with new) were allocated on the heap and not deallocated.
The fourth line gives the maximum memory used by your program at any one time.
The last line lists the total amount of memory used by your program.
For more information, see Dumping All Objects, Tracking Memory Allocations, , and .