Partager via


Affichage des statistiques de la mémoire

Mise à jour : novembre 2007

Cette rubrique s'applique à :

Édition

Visual Basic

C#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Standard

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Pro et Team

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Légende du tableau :

La rubrique s'applique

Applicable

La rubrique ne s'applique pas

Non applicable

La rubrique s'applique mais la commande est masquée par défaut

Commande ou commandes masquées par défaut.

La fonction CMemoryState::Difference examine deux objets d'état de mémoire et détecte les objets qui n'ont pas été libérés du tas entre les états de début et de fin. Une fois que vous avez Comment : prendre des instantanés de la mémoire et que vous les comparés à l'aide de CMemoryState::Difference ; vous pouvez appeler CMemoryState::DumpStatistics pour obtenir des informations sur les objets qui n'ont pas été libérés.

Prenons l'exemple suivant :

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

Un exemple de dump de cet exemple aura l'aspect suivant :

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

Les blocs libres sont des blocs dont la fin d'allocation est différée si afxMemDF a la valeur delayFreeMemDF. Pour plus d'informations, consultez Comment : activer les diagnostics de la mémoire.

Les blocs Object ordinaires, affichés sur la deuxième ligne, restent alloués sur le tas.

Les blocs non objet incluent les tableaux et les structures alloués avec new. Dans le cas présent, quatre blocs non objet ont été alloués sur le tas, mais pas libérés.

Largest number used donne la mémoire maximale utilisée par le programme à un moment quelconque.

Total allocations donne la quantité totale de mémoire utilisée par le programme.

Voir aussi

Tâches

Comment : prendre des instantanés de la mémoire

Référence

CMemoryState Structure

Autres ressources

Détection de fuite de mémoire dans MFC

Diagnostic Services