Практическое руководство. Включение и отключение диагностики памяти
Обновлен: Ноябрь 2007
Этот раздел применим к:
Выпуск |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Экспресс-выпуск |
![]() |
![]() |
Только машинный код |
![]() |
Standard |
![]() |
![]() |
Только машинный код |
![]() |
Pro и Team |
![]() |
![]() |
Только машинный код |
![]() |
Обозначения:
![]() |
Применяется |
![]() |
Неприменимо |
![]() |
Команда или команды скрытый по умолчанию. |
Прежде чем воспользоваться возможностями диагностики памяти, нужно включить диагностическую трассировку.
Включение и отключение диагностики памяти
- Вызовите глобальную функцию AfxEnableMemoryTracking, чтобы включить или выключить выделение памяти с диагностикой. Поскольку диагностика памяти обычно включена по умолчанию в отладочной библиотеке, эта функция будет применяться для ее временного отключения — это позволит увеличить скорость выполнения программы и уменьшит вывод диагностических сообщений.
Выбор функции диагностики памяти с помощью afxMemDF
Если необходимо обеспечить более точное управление функциями диагностики памяти, можно задать значение глобальной переменной MFC afxMemDF, которая позволяет выборочно включать и отключать отдельные функции. Эта переменная может принимать следующие значения, заданные перечисляемым типом AfxMemDF:
Значение
Смысл
allocMemDF
Включает выделение памяти с диагностикой (по умолчанию).
delayFreeMemDF
Задерживает освобождение памяти при вызове delete или free до выхода из программы. Это позволяет обеспечить выделение максимального объема памяти.
checkAlwaysMemDF
Вызывает AfxCheckMemory каждый раз при выделении или освобождении памяти.
Эти значения можно комбинировать с помощью логической операции ИЛИ, как показано ниже:
AfxMemDF = allocMemDF | delayFreeMemDF | checkAlwaysMemDF;