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



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

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

不,无法重置此计数器。

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

最新更新