![]() |
![]() |
|
![]() |
||||||||||||||||||
![]() |
![]() |
![]() |
||||||||||||||||
|
![]() |
|
![]() |
|
||||||||||||||
![]() |
![]() |
36 - Сохранение дампа памяти / MSDN rus / Visual C++ |
![]() |
Шаг 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) были созданы в динамической памяти и не освобождены. Четвертая строка дает максимальную память, используемую вашей программой в данный момент. Последняя строка перечисляет общую сумму памяти, используемую в вашей программе. | | Автор Каев Артем. |
![]() |
![]() |
![]() |
|