Существует код C++, который выполняет некоторые вычисления в итерациях цикла. Когда я запускаю свой код на пару часов, увеличение использования памяти не наблюдается. Но когда я позволяю ей работать в ночное время, 50 МБ увеличения использования памяти наблюдается с помощью инструмента MS Performance Monitor (perfmon.exe), как показано ниже. Сюжеты предназначены только для моего процесса, а не для всей системы.Возможно ли увеличение использования памяти моего кода без утечки памяти?
Visual Leak Detector не может обнаружить любую утечку памяти внутри реализуемого цикла. Возможно ли, что причиной увеличения использования памяти является нечто иное, чем утечка памяти?
Да; возможно. У вас могут быть списки или другая структура данных, которые растут - вы не удаляете элементы, чтобы список продолжал расти. Меньше вероятность утечки памяти, где есть циклы ссылок между просочими элементами, поэтому детектор утечки не обнаруживает, что есть утечка. –
Я вижу две возможности: либо VLD пропустил утечку памяти (что на самом деле может случиться), либо ваш код фактически увеличивает использование памяти (для этого не требуется утечка памяти, утечка памяти происходит, когда вы не можете ссылаться на некоторая память больше и, следовательно, не может ее выпустить, но вы также можете просто сохранить больше памяти по мере запуска программы). – JBL
Является ли эта информация конкретно о вашей программе или о всей системе? Если это системный граф, могут выполняться другие задачи или программы, которые используют больше памяти. –