Шаг 36 - Сохранение дампа памяти

CMemoryState (см. "Шаг 235 - CMemoryState") и функция Difference определяет различие между двумя состояниями по памяти двух объектов. Тем самым обнаруживает любые объекты, которые не были освобождены от динамической памяти между началом и конечными состоянием.

Для сохранения статистики Вызовите функцию DumpStatistics для получения информации об объектах, которые не были распределены. Вот пример

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

Вот такой может быть результат:

0 bytes in 0 Free Blocks 
22 bytes in 1 Object Blocks 4
5 bytes in 4 Non-Object Blocks 
Largest number used: 67 bytes 
Total allocations: 67 bytes 

Первая строка описывает число блоков, освобождение которых было отсрочено, если afxMemDF был установлен в delayFreeMemDF (см. "Шаг 236 - afxMemDF").

Вторая строка описывает, сколько объектов остаются распределенными в динамической памяти.

Третья строка описывает, сколько необъектных блоков (массивы или структуры распределенные с помощью new) были созданы в динамической памяти и не освобождены.

Четвертая строка дает максимальную память, используемую вашей программой в данный момент.

Последняя строка перечисляет общую сумму памяти, используемую в вашей программе.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 23.08.2000