|
|
| Посл.отвђт | Сообщен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 Что значит закрыта? Проблема решена? Как? |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.098 |