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