![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Утечка памяти [D7, Win2k, WinXP]
pavel_guzhanov © (2005-01-20 09:36:00)Сделал я программу, которая опрашивает компьютеры в локальной сети на предмет установленного железа. Опрос идет через WMI. Составляется массив из имен компьютеров, и в цикле они все по-очереди опрашиваются. Цикл опроса вывел в отдельный поток, чтобы иметь доступ к управлению программой (например для паузы в опросе). Все работает нормально, но происходит огромная утечка памяти, а именно: В конце работы цикла, т.е. после опроса последнего компьютера, диспетчер задач показывает, что программа в память знимает больше 200 MByte. При запуске и начале опроса - порядка 10. Сеть достаточно большая, около 200 компьютеров. Ясно, что где-то в цикле происходит утечка памяти, но вот как определить, где именно? Я пробовал все переменные, связанные с WMI, создавать динамически, при инициализации выделяя им память (New), а сразу после использования убивая (Dispose). Но это ничего не дало. Подскажите, как можно определить, что именно пожирает память?
ev (2005-01-20 12:15:00) [1]была похожая проблема... обнаружилась утечка памяти... перепроверил все в коде - нигде нет... уже начал грешить на компоненты INDY - заменил, на API... промучался еще кучу времени... насколько удалось выяснить существует утечка в виндовой библиотеке работы с сетью... в NT4 такой ошибки нет, в W2000 - есть, в XP - не проверял... данную проблему я общуждал где-то на соурфорж (вроде) - но решения так и не нашли... микрософт на эту проблему внимания не обращает :(
REA (2005-01-20 10:43:00) [2]В простых случаях действуем методом дихотомии. А именно комментируем куски программы, пока не перестанет утекать и т.д.
Amoeba (2005-01-20 10:19:00) [3]MemProof (а не MemProf! - такой не существует) - это программа-отладчик (бесплатная!!!), специально предназначенная для обнаружения и локализации в коде мест, вызывающих утечки памяти. Адрес для закачки легко находится поисковиком.
Если будешь скачивать, то надо скачать сперва предпоследнюю версию и установить ее. Затем скачать последнюю и распаковать поверх. Дело в том, что она идет уже как обновление и не содержит поэтому файла справки, а без него разобраться будет весьма затруднительно.
pavel_guzhanov (2005-01-20 09:55:00) [4]
> Алхимик © (20.01.05 09:43) [2]
> Народ рекомендует MemProf
А это что, копонент, или программа?
Алхимик (2005-01-20 09:43:00) [5]Народ рекомендует MemProf. Сам не пробовал.
Poirot (2005-01-20 09:39:00) [6]можешь сделать свой манагер памяти для проверки и смотри сколько выделяется и сколько освобождается.. примеры были на торри и тут когда-то в кладовке... пос\лносьтю раюбочий манагер с возможносью сбора статистики по использованию памяти.