Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];
ВнизИнструменты для поиска "утечки" памяти в проекте Найти похожие ветки
← →
DelphiN! (2008-02-25 13:16) [0]Есть большой проект, в котором имеется "утечка" памяти, необходимо ее устранить, а чем вооружиться не знаю. Большой плюс в инструменте для поиска "утечек" был бы - возможность просматривать содержимое прирастающей памяти, чтобы на основе этих данных делать выводы о местонахождении ошибки.
Был бы признателен за рекомендацию инструментов и прочие советы по поиску мест утечек памяти в проекте
Проект написан в Delphi 6
← →
Правильный_Вася (2008-02-25 13:20) [1]MemProof
← →
Andy BitOff © (2008-02-25 13:32) [2]EurekaLog
http://www.eurekalog.com/
← →
ANTPro © (2008-02-25 13:38) [3]FastMM4
← →
Dimaxx © (2008-02-25 17:10) [4]MemCheck
http://v.mahon.free.fr/pro/freeware/memcheck/
← →
VirEx © (2008-02-25 17:56) [5]
> [3] ANTPro © (25.02.08 13:38)
> FastMM4
спасибо, даж перевод (на русском) сообщений есть :)
← →
DVM © (2008-02-25 19:06) [6]FastMM4 не покажет утечки объектов GDI, User и т.д. Надо иметь в виду.
← →
TUser © (2008-02-26 05:58) [7]GC рулит, но его у нас нет :)
← →
Mystic © (2008-02-26 11:55) [8]> GC рулит, но его у нас нет :)
От задачи зависит.
← →
VirEx © (2008-02-26 17:34) [9]Вопрос такой.
В execute выполняется некий код со string (uppercase, inttostr,...), thandle.
Есть кнопка прерывающая выполнение.
Ежели пару раз прервать нить и заново запустить, будут утечки памяти.
Как избежать утечек?
← →
Mystic © (2008-02-26 18:29) [10]А как прервать? Если TerminateThread(), то избавится от утечет памяти никак нельзя. Если поток заканчивает свое выполнение выходом из Execute(), никаких утечек не будет
← →
VirEx © (2008-02-26 18:55) [11]яяясно...
← →
VirEx © (2008-02-26 19:25) [12]а есть ли каконибудь метод нотификации для нити, при котором можно было выйти в функцию финализации компонента и спокойно прибить эту нить
← →
тимохов (2008-02-28 00:13) [13]как не попиарица http://timokhov.blogspot.com/2007/03/delphi-2007-iii-fastmm.html (остальное не читать :-Р )
сам пользуюсь давно, несмотря на кривой стек с лишними записями (сам Ле Риш говорит, что не фига в дельфи невозможно 100% разобрать стек вызовов) найти мне ВСЕГДА удавалось место утечки.
← →
Mystic © (2008-02-28 10:19) [14]> а есть ли каконибудь метод нотификации для нити, при котором
> можно было выйти в функцию финализации компонента и спокойно
> прибить эту нить
Все зависит от того, что делает поток. Если он ждет каких-то нотификаций через WatForSingleObject или WaitForMultipleObject, то можно просто сделать специальный event (CreateEvent), который будет срабатывать в том случае, когда надо завершить поток. Если это вычисления, то тут я не знаю лучшего способа, чем проверять значение Terminated. Правда в мечтах написать функцию RaiseExceptionInThread(Thread: THandle; E: Exception), которая бы бросала исключение в указанный поток (таким образом можно было бы легко прерывать вычисления без постоянных проверок), но пока думаю, как бы это сделать...
← →
pasha_golub © (2008-02-28 10:35) [15]AQTime
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.04.13;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.007 c