Ver estadísticas de memoria

Actualización: noviembre 2007

Este tema es aplicable a:

Edición

Visual Basic

C#

C++

Web Developer

Express

Sólo para código nativo

Standard

Sólo para código nativo

Pro y Team

Sólo para código nativo

Leyenda de la tabla:

Se aplica

No procede

Comando o comandos ocultos de forma predeterminada.

La función CMemoryState::Difference examina dos objetos de estado de memoria y detecta cualquier objeto no desasignado del montón entre los estados inicial y final. Después de Cómo: Tomar instantáneas de la memoria y compararlas mediante CMemoryState::Difference, puede llamar a CMemoryState::DumpStatistics para obtener información acerca de los objetos que no se han desasignado.

Considere el ejemplo siguiente:

if( diffMemState.Difference( oldMemState, newMemState ) )
{
   TRACE( "Memory leaked!\n" );
   diffMemState.DumpStatistics();
}

Un volcado de ejemplo tiene el siguiente aspecto:

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

Los bloques libres son bloques cuya desasignación se retrasa si afxMemDF se configuró con el valor delayFreeMemDF. Para obtener más información, vea Cómo: Habilitar el diagnóstico de memoria.

Los bloques de objetos ordinarios, que se muestran en la segunda línea, permanecen asignados en el montón.

Entre los bloques que no son objetos se incluyen las matrices y las estructuras cuya memoria se asigna con new. En este caso, se asignó memoria en el montón para cuatro bloques que no son objetos, pero esa memoria no se desasignó.

Largest number used proporciona la memoria máxima utilizada por el programa en cualquier instante.

Total allocations proporciona la cantidad total de memoria utilizada por el programa.

Vea también

Tareas

Cómo: Tomar instantáneas de la memoria

Referencia

CMemoryState Structure

Otros recursos

Detección de pérdidas de memoria en MFC

Diagnostic Services