2013-10-25 24 views
1

_CrtMemCheckpoint()返回的_CrtMemState結構包含size_t lHighWaterCount成員,該成員給出自應用程序啓動以來最大的內存使用量。我正在寫一個關心高水位的試驗檯,但它在單次運行中會進行多次測試,而且我只能可靠地獲得第一次測試的高水位標記:如果高水位不會在上升過程中第二個測試,我只知道高水位小於或等於第一個測試的水位。清除CRT調試堆中的高水位數

有沒有辦法將CRT調試堆的高位標記重置爲當前分配大小?

+0

我在看的文檔說它「返回」無效,並採取一個指針:http://msdn.microsoft.com/en-us/library/h3z85t43.aspx – doctorlove

+0

好吧。你想說什麼? – Sneftel

回答

1

不,沒有辦法重置此計數器。

考慮另一種解決方案:在每個測試開始時註冊一個分配鉤子(通過_CrtSetAllocHook),在測試期間保持自己的高水數,然後在測試結束時取消註冊鉤子。