Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.12.19;
Скачать: CL | DM;

Вниз

Утечка, которая не была утечкой   Найти похожие ветки 

 
VaS   (2003-12-06 11:11) [0]

Программа разрабатывается для работы в режиме 24х7.
Тестируем. После ~12 часов работы размер виртуальной памяти процесса достигает 70-80М (старт - 7М), после чего молча падает (т.е. нет никаких записей в логе, нет диалоговых окон сообщений об ошибке, нет записей в журнале событий приложений системы).

Ни AQTime2, ни CodeWatch3 утечек ни памяти ни ресурсов не обнаруживают. Наблюдение за распределением памяти в CodeWatch показывает постепенный рост VCL Virtual Memory на фоне стабильности остальных видов памяти (см. картинку http://fr2html.boom.ru/vas_leak.png). При этом раз в несколько секунд пиковое значение # of Ptrs Allocated в VCL Virtual Memory растет на 1.

Вопрос1: Объясните, что такое эта VCL VM и чем она отличается от VCL Memory.

Вопрос2: Похоже, что в некотором списке накапливаются какие-то объекты или указатели на выделенную New или AllocMem память. При этом, очевидно, этот список (или очередь) при выходе из программы корректно очищает свое содержимое (т.к. утечек нет). Концептуальный вопрос - КАК ловить такие вот "утечки"?? Программа далеко не тривиальная, число разных списков достигает сотен тысяч.


 
Nikolay M. ©   (2003-12-06 11:17) [1]


> после чего молча падает

Очень похоже на переполнение стека. Поищи, не идет ли где рекурсивный вызов процедурой самой себя.

По поводу памяти, к сожалению, сказать ничего не могу. Но, имея аналогичный опыт, пришлось-таки написать программку-монитор, которая раз в сутки перезапускала основной модуль :?)
Сроки поджимали, программа была написана, ковыряться в ней было некогда... :?)


 
VaS   (2003-12-06 12:33) [2]

Насчет рекурсий - интересная идея. Буду искать.

WatchDog вещь конечно хорошая :) Но продукт серьезный, так что не подходит. Да и нельзя так.


 
Nikolay M. ©   (2003-12-06 13:04) [3]


> Но продукт серьезный, так что не подходит. Да и нельзя так.

Если программа идет в коробке, я бы в рекомендациях к работе с ней написал "еженедельная (а лучше - ежедневная) профилактическая перезагрузка Windows" :)
Хотя согласен, это неправильно :)



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

Текущий архив: 2003.12.19;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.022 c
1-62029
Dimchik
2003-12-06 15:19
2003.12.19
TStringGrid


14-62259
Relaxxx
2003-11-25 11:18
2003.12.19
Напомните, а тоя забыл.... как мне узань какой разделитель


3-61901
Olga_Oo
2003-11-27 13:40
2003.12.19
Qreport


1-62049
DikobraZ
2003-12-04 22:34
2003.12.19
Какие компоненты используют в uses: Compress, CompressZli...


1-62066
Артем
2003-12-05 14:14
2003.12.19
TListView & Columns