Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

Утечка памяти   Найти похожие ветки 

 
pavel_guzhanov   (2005-01-20 09:36) [0]

Сделал я программу, которая опрашивает компьютеры в локальной сети на предмет установленного железа. Опрос идет через WMI. Составляется массив из имен компьютеров, и в цикле они все по-очереди опрашиваются. Цикл опроса вывел в отдельный поток, чтобы иметь доступ к управлению программой (например для паузы в опросе). Все работает нормально, но происходит огромная утечка памяти, а именно: В конце работы цикла, т.е. после опроса последнего компьютера, диспетчер задач показывает, что программа в память знимает больше 200 MByte. При запуске и начале опроса - порядка 10. Сеть достаточно большая, около 200 компьютеров. Ясно, что где-то в цикле происходит утечка памяти, но вот как определить, где именно? Я пробовал все переменные, связанные с WMI, создавать динамически, при инициализации выделяя им память (New), а сразу после использования убивая (Dispose). Но это ничего не дало. Подскажите, как можно определить, что именно пожирает память?


 
Poirot ©   (2005-01-20 09:39) [1]

можешь сделать свой манагер памяти для проверки и смотри сколько выделяется и сколько освобождается.. примеры были на торри и тут когда-то в кладовке... пос\лносьтю раюбочий манагер с возможносью сбора статистики по использованию памяти.


 
Алхимик ©   (2005-01-20 09:43) [2]

Народ рекомендует MemProf. Сам не пробовал.


 
pavel_guzhanov   (2005-01-20 09:55) [3]


> Алхимик ©   (20.01.05 09:43) [2]
> Народ рекомендует MemProf

А это что, копонент, или программа?


 
Amoeba ©   (2005-01-20 10:19) [4]

MemProof (а не MemProf! - такой не существует) - это программа-отладчик (бесплатная!!!), специально предназначенная для обнаружения и локализации в коде мест, вызывающих утечки памяти. Адрес для закачки легко находится поисковиком.

Если будешь скачивать, то надо скачать сперва предпоследнюю версию и установить ее. Затем скачать последнюю и распаковать поверх.  Дело в том, что она идет уже как обновление и не содержит поэтому файла справки, а без него разобраться будет весьма затруднительно.


 
REA   (2005-01-20 10:43) [5]

В простых случаях действуем методом дихотомии. А именно комментируем куски программы, пока не перестанет утекать и т.д.


 
ev   (2005-01-20 12:15) [6]

была похожая проблема... обнаружилась утечка памяти... перепроверил все в коде - нигде нет... уже начал грешить на компоненты INDY - заменил, на API... промучался еще кучу времени... насколько удалось выяснить существует утечка в виндовой библиотеке работы с сетью... в NT4 такой ошибки нет, в W2000 - есть, в XP - не проверял... данную проблему я общуждал где-то на соурфорж (вроде) - но решения так и не нашли... микрософт на эту проблему внимания не обращает :(



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.038 c
1-1105987607
redlord
2005-01-17 21:46
2005.01.30
TICQClient и регистрация нового пользователя


3-1104262713
zokzok
2004-12-28 22:38
2005.01.30
Доступ к таблице из другой формы


1-1106106221
TButton
2005-01-19 06:43
2005.01.30
Упаковка ресурсов


1-1105888423
Grief
2005-01-16 18:13
2005.01.30
КАК?


1-1105701891
Leon1
2005-01-14 14:24
2005.01.30
Настройка DbGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский