_CrtMemCheckpoint()
返回的_CrtMemState
结构包含一个size_t lHighWaterCount
成员,该成员提供自应用程序启动以来的最大内存使用量。我正在编写一个关心高水位线的测试台,但它在一次运行中运行多个测试,并且我只能可靠地获得第一次测试的高水位线:如果在第二次测试期间高水位线没有上升,我只知道高水位线小于或等于第一次测试的高水位线。
有没有办法将 CRT 调试堆的高水位线重置为当前分配大小?
不,无法重置此计数器。
考虑另一种解决方案:在每次测试开始时注册一个分配钩子(通过_CrtSetAllocHook
),在该测试期间保持自己的高水位数,然后在测试结束时取消注册您的钩子。