Freigeben über


Anzeigen einer Speicherstatistik

Aktualisiert: November 2007

Dieses Thema gilt für folgende Anwendungsbereiche:

Edition

Visual Basic

C#

C++

Web Developer

Express

Nur "Systemeigen"

Standard

Nur "Systemeigen"

Pro und Team

Nur "Systemeigen"

Tabellenlegende:

Vorhanden

Nicht vorhanden

Befehl oder Befehle, die standardmäßig ausgeblendet sind.

Durch die CMemoryState::Difference-Funktion werden die beiden Speicherzustandsobjekte verglichen und alle Objekte ermittelt, die zwischen dem Anfangs- und dem Endzustand nicht vom Heap freigegeben wurden. Nachdem Sie Speichersnapshots aufgezeichnet (Gewusst wie: Erstellen von Speichersnapshots) und diese mithilfe von CMemoryState::Difference verglichen haben, können Sie CMemoryState::DumpStatistics aufrufen, um Informationen über die nicht freigegebenen Objekte zu erhalten.

Betrachten Sie das folgende Beispiel:

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

Ein Beispieldump dieses Codes sieht z. B. wie folgt aus:

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

Bei freien Blöcken handelt es sich um die Blöcke, deren Freigabe verzögert wird, wenn afxMemDF auf delayFreeMemDF festgelegt wurde. Weitere Informationen hierzu finden Sie unter Gewusst wie: Aktivieren der Speicherdiagnose.

Die in der zweiten Zeile aufgeführten normalen Objektblöcke bleiben auf dem Heap reserviert.

Nicht-Objektblöcke umfassen Arrays und Strukturen, die mit new reserviert wurden. In diesem Fall wurden vier Elemente, die kein Objekt darstellen, auf dem Heap reserviert, jedoch nicht freigegeben.

Largest number used gibt an, wie viel Speicher vom Programm maximal reserviert wurde.

Total allocations gibt die gesamte, vom Programm genutzte Arbeitsspeicherkapazität an.

Siehe auch

Aufgaben

Gewusst wie: Erstellen von Speichersnapshots

Referenz

CMemoryState Structure

Weitere Ressourcen

Speicherverlusterkennung in MFC

Diagnostic Services