如何:启用内存诊断
本主题适用于:
版本 |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
学习版 |
仅限本机 |
||||
专业版、高级专业版和旗舰版 |
仅限本机 |
必须先启用诊断跟踪,然后才能使用内存诊断功能。
启用或禁用内存诊断
- 调用全局函数 AfxEnableMemoryTracking 来启用或禁用诊断内存分配器。 由于默认情况下内存诊断在调试库中是打开的,所以通常会使用该函数暂时关闭内存诊断,这会提高程序执行速度并减少诊断输出。
使用 afxMemDF 选择特定内存诊断功能
如果希望对内存诊断功能进行更精确的控制,可以通过设置 MFC 全局变量 afxMemDF 的值,来有选择地打开和关闭单个内存诊断功能。 该变量可以具有下列值(由枚举类型 afxMemDF 所指定)。
值
含义
allocMemDF
打开诊断内存分配器(默认)。
delayFreeMemDF
在调用 delete 或 free 时延迟释放内存,直到程序退出。 这将使您的程序分配可能的最大内存量。
checkAlwaysMemDF
每次分配或释放内存时均调用 AfxCheckMemory。
可以通过执行逻辑 OR 操作来组合使用这些值,如下所示:
afxMemDF = allocMemDF | delayFreeMemDF | checkAlwaysMemDF;