_CrtMemState
структура возвращается _CrtMemCheckpoint()
включает в себя size_t lHighWaterCount
член, который дает максимальное использование памяти с момента запуска приложения. Я пишу испытательную установку, которая заботится о отметках уровня воды, но она выполняет несколько тестов за один проход, и я могу только надежно получить отметку уровня воды для первого теста: если отметка уровня воды не повышается во время Во втором тесте я знаю только то, что отметка максимальной воды была меньше или равна отметке первого теста.
Есть ли способ сбросить верхнюю отметку кучи отладки CRT до текущего размера выделения?
Нет, нет способа сбросить этот счетчик.
Рассмотрим альтернативное решение: зарегистрируйте хук распределения (через _CrtSetAllocHook
) в начале каждого теста сохраняйте свой высокий уровень воды в течение этого теста, затем отмените регистрацию крючка в конце теста.
Других решений пока нет …