· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Утечка памяти.

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Май 16, 2004 18:39:57

Здравствуйте!

Недавно (благодаря q_q) я закончил
работу над программой для быстрого
доступа к "Корзине". При тестировании
я случано обнаружил, что происходят
"утечки памяти" при вызове некоторых
функций, например, при вызове функции
invoke SHEmptyRecycleBin,NULL,NULL,SHERB_NOCONFIRMATION+SHERB_NOPROGRESSUI+SH ERB_NOSOUND
загрузка физической памяти (посмотрел в "Диспетчере
задач") возрастает с 208 до ~3000.
Есть ли простой способ вернуть загрузку
памяти в "прежнее" состояние - какой-нибудь
применимый во большинстве случаев вариант
кода для освобождения памяти?

Заранее спасибо!
1990


Дата: Май 17, 2004 06:44:13

1990
Почему ты решил, что загрузка физической памяти происходит из-за утечки?


Дата: Май 17, 2004 09:53:50

q_q
В мониторе показывается, что моя программа загружает память. А что, может быть это связано с DLL?


Дата: Май 17, 2004 18:40:56

Если лик внутри WINAPI - тебе остается только расслабится и получить удовольствие. Если лик внутри твоей программы - то тут есть над чем подумать.
Если в лоб, тупо и прямо.
В общем случае количество malloc (или что там у тебя вместо него - HeapAlloc, VirtualAlloc или что-нибудь еще) должно быть равно количеству free (HeapFree, VirtualFree, etc...). Проверь.
Второе - в примечаниях к некоторым API-функциям MS говорит, что пользователь должен обеспечить высвобождение памяти для параметров сам. Проверь описание функций.
Третье - лучше всего использовать какую-то тулзу. Например, BoundsChecker или Purify. Массу времени сбережешь!


Дата: Май 17, 2004 18:55:54 · Поправил: IceStudent
Правка

MemProof неплохой.
В смысле, бесплатен (был?) и не большого размера.

Как говорится, «за неимением гербовой…»


Дата: Май 17, 2004 19:13:20

AQTime рулит для таких вещей


Дата: Май 17, 2004 21:21:56

Всем спасибо!
IceStudent
Не нашёл тулзы. NF и ничего больше...


Дата: Май 17, 2004 21:50:27

Не нашёл тулзы. NF и ничего больше...

Программисты, вы меня умиляете... 1990, ты бы хоть в слух не говорил. IceStudent тебе линк без http:// дал, сервер не знает как редиректить. А что тебе мешает скопировать ярлык, открыть окошко в новом браузере и запустить? И это человек, который интересуется утечками памяти...


Дата: Май 17, 2004 22:32:45 · Поправил: Asterix


Дата: Май 17, 2004 22:33:11

volodya
Каюсь... ;-) Прокололся на такой простой вещи.


Дата: Май 18, 2004 05:11:09 · Поправил: q_q

1990
Если существует утечка, то объем используемой памяти будет увеличиваться с каждым вызовом SHEmptyRecycleBin, по-моему, этого не происходит.


Дата: Май 18, 2004 08:20:23

q_q
Как раз происходит - каждый вызов этой функции прибалвяет на несколько X размер памяти, выделенной под программу.


Дата: Май 18, 2004 08:29:30

А ты shell-объекты освобождаешь(например PIDL, полученный через SHGetFolderLocation)?


Дата: Май 18, 2004 16:42:24

Toxic
Конечно.

Спасибо всем за ответы! Тема закрыта.


Дата: Май 19, 2004 09:30:10

1990
Что значит закрыта? Проблема решена? Как?

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.098