重置CRT调试堆中的高水位数

时间:2013-10-25 11:53:21

标签: c++ visual-c++ memory-management msvcrt crtdbg.h

_CrtMemState返回的_CrtMemCheckpoint()结构包含size_t lHighWaterCount成员,该成员提供自应用程序启动以来的最大内存使用量。我正在编写一个关注高水位标记的测试台,但它在一次运行中会进行多次测试,我只能在第一次测试时可靠地获得高水位标记:如果高水位标记没有上升第二次测试,我只知道高水位标记小于或等于第一次测试。

有没有办法将CRT调试堆的高水位重置为当前分配大小?

1 个答案:

答案 0 :(得分:1)

不,没有办法重置此计数器。

考虑另一种解决方案:在每次测试开始时注册一个分配钩子(通过_CrtSetAllocHook),在测试期间保持自己的高水位数,然后在测试结束时取消注册钩子