Re: Утечки памяти?
От: Аноним  
Дата: 31.07.06 17:35
Оценка:
Здравствуйте, Aracon, Вы писали:

A>Написал программу с использованием MFC. Утечек памяти, связанных с неудалением выделенной через new или malloc памяти там точно нет, связанных с COM вроде бы тоже (проверял Visual Leak Detector'ом).

То, что тулы их не нахоят ещё не явл. док-вом что их нет. Хотя, в случае MFC утечки памяти, связанных с неудалением выделенной через new или malloc пропустить почти невозможно. Утечки COM и BoundsChecker легко не заметит, тем более Visual Leak Detector. Если есть СОМ (вернее любой third-party) — утечки могут быть в нём.
Ещё бывают GDI leaks.

Заказчик пожаловался на утечки, проявляющиеся в виде возрастания "съеденной" приложением памяти в Диспетчере задач. Стал проверять. Увидел, что показатель растет при открытии диалогов программы (это понятно), чуть-чуть иногда возрастает по непонятной причине (причем, видимо, связанной с интерфейсом, т.к. при закрытых диалогах ничего такого не наблюдалось), а через какое-то время тестирования показатель резко уменьшился вдвое.
Ну и что? По вашему если кол-во используемой памяти не константно — значит есть утечки? Смотрите на люб. другую программу — увидите тоже самое. Сверните своё окно — вообще удивитесь.

A>Соответственно, вопросы:

A>1) Как могут получаться утечки в MFC, если используются статические объекты, а динамические корректно удаляются?
Тогда — не могут получаться.

A>2) Есть ли в MFC какой-нибудь механизм вроде уборщика мусора, которым можно объяснить резкое уменьшение используемой памяти?

Нету, но есть своп-файл ОС.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.