Memory leaks

yeziz 23.03.2004 - 10:53 | Привет, All! Скажите, положа руку на самое дорогое, как искать протечку памяти в проге? 1. Ситуация воспроизводима только под нагрузкой (ок. 20 юзверей одновременно) и при сравнительно сложной обработке каждого запроса. 2. Ни один дебаггер/хип-менеджер утечку не видит (Visual Studio, Bounds Checker, Heap Agent 7, umdh) 3. Есть подозрение, что при переключении на debug heap лики пропадают. Профессионалы-системщики и прочие кул-хацкеры, отзовитесь! Заранее спасибо.
Nex 1 - 23.03.2004 - 10:56 | понимать надо, что делает программа. тогда никакая автоматика не понадобится, имхо. чем искать рульные проги, лучше потратить это время на изучение кода.
VaS 2 - 23.03.2004 - 11:03 | Объекты/указатели на структуры где-то накапливаются. В контейнере естесственно, который корректно очищает свое содержимое при завершении процесса (раз нет утечки). Проверь логику всех кэшей, списков, очередей, которые сами/не сами очищаются (в деструкторах). Протоколируй их размер в конце полной отработки _каждого_запроса_.
yeziz 3 - 23.03.2004 - 11:32 | 2 VaS: Ок, спасибо, попробую. Как же я сам не сообразил про кэши?.. Но тогда почему без нагрузки этого не происходит?.. Ладушки, по-любому проверю. Спасибо за совет. 2 Nex: Хороший совет. "Программа" содержит более полутора миллиона строк; модифицируется, поддерживается и работает уже лет десять; почти никого из тех, кто начинал ее писать уже нету; писали "настоящие программисты".
Nex 4 - 23.03.2004 - 11:35 | 3) ну тогда канешна бэд :(
ГыГы 5 - 23.03.2004 - 18:46 | Попробуй встроить IMallocSpy
UE 6 - 24.03.2004 - 10:50 | > почти никого из тех, кто начинал ее писать уже нету Расстреляны? :)
yeziz 7 - 25.03.2004 - 12:03 | А кто это такой - IMallocSpy? 2 UE: Сбежали :-))) (уволены/сокращены, ушли сами и т.д.) Кстати (или некстати), подробность: на появление утечки влияет функция set_sbh_threshold. Вставляешь вызов в начале проги - все ок, убираешь - течет. :-(
yeziz 8 - 25.03.2004 - 16:15 | А ишшо на то же самое (рост памяти от прогона к прогону) влияет наличие флага "создавать User mode stack database", равно как и наличие подключенного к процессу отладчика

>>