powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Утечки памяти в приложении - FasMM, EurekaLog
25 сообщений из 42, страница 1 из 2
Утечки памяти в приложении - FasMM, EurekaLog
    #40113723
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!

Продолжаю эксперименты с ВЕБ-Сокетами. Озадачился такой проблемой. Программа (WIN32) после старта занимает в диспетчере около 30 мб. Сетевой обмен через сокеты не очень интенсивный - примерно 2 кб в секунду. Спустя несколько часов, буквально за пару минут, объем памяти, занимаемой программой плавно увеличивается до 130 мб. Случано заметил, т.к. в этот момент смотрел в диспетчере.
Буквально, каждую секунду добавлялся лишний мегабайт. Потом несколько часов все работало нормально. Памямть не росла. Это Винда решила подкинуть памяти от щедрот своих для какой-то оптимизации обмена или это все же косяки где то, как думаете?

Вот что дает FastMM c ReportMemoryLeaksOnShutdown := True; (скрин). Выглядит, конечно, неприятно, но даже при перемножении в уме никак не тянет на лишних 100 мб

Поставил триал EurekaLog. И, к своему удивлению, ничего внятного от него пока получить не могу. Объем экзешника увеличился заментно, опции VCL и прочее выбраны, но ни в логе ничего нет, и при закрытии приложения никаких окон не появлятся. ReportMemoryLeaksOnShutdown := True; сначала закоментировал, конечно.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113726
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB
Выглядит, конечно, неприятно, но даже при перемножении в уме никак не тянет на лишних 100 мб

Это оно просто не пишет память сожранную "внутри" этих классов. Перечисляет только "корневые" классы, так сказать.

Поставил триал EurekaLog. И, к своему удивлению, ничего внятного от него пока получить не могу. Объем экзешника увеличился заментно, опции VCL и прочее выбраны, но ни в логе ничего нет, и при закрытии приложения никаких окон не появлятся. ReportMemoryLeaksOnShutdown := True; сначала закоментировал, конечно.
Лучше MadExcept поставь. И проще пользоваться и без триала.

Ну оно за тебя утечки не поправит. И так видно, что у тебя компоненты не удаляются после использования.
Например 236 х TIdTCPClient.
А где они создаются думаю ты и так знаешь.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113727
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Лучше MadExcept поставь. И проще пользоваться и без триала.

> Ну оно за тебя утечки не поправит. И так видно, что у тебя компоненты не удаляются после использования.

Согласен, спасибо. Буду копать.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113742
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Чтоб поймать утечки, одного FastMM достаточно.
Только учитывай, что если оно в режиме полной отладки, то куча намного больше за счет отладочной инфы. Ну и фаст может не отдавать системе однажды выделенную память, запасая ее у себя на будущее
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113753
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB
Спустя несколько часов, буквально за пару минут, объем памяти, занимаемой программой плавно увеличивается до 130 мб. Случано заметил, т.к. в этот момент смотрел в диспетчере.
Буквально, каждую секунду добавлялся лишний мегабайт.
Если мегабайт в секунду, то было бы
(несколько часов) * 3600 мегабайт.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113757
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fr0sT-BrutalНу и фаст может не отдавать системе однажды выделенную память, запасая ее у себя
на будущее

Ни один ММ не отдаёт системе память сразу. Фаст не исключение.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113765
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Но все же, почему EurekaLog вообобще ничего не показывает? Хотя бы из интереса хотелось взглянуть. Исполняемый файл увеличился, опция для работы с VCL приложением стоит - а ни влогах (сменил путь на боле простой, на диске D), ни окна при закрытии приложения не появляется.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113771
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Если мегабайт в секунду, то было бы...

Имелось в виду, на мегабайт в секунду начинает увеличиваться объем потребляемой памяти по диспетчеру. До этого - около 30 мегабайт на протяжении пары часов. Потом резко увеличиваетсмя до 130 мб в течении короткого промежутка времени. Вот прям случайно это земетил, совпадение. А потом опять несколько часов работает на 130 мб...
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113778
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB
Но все же, почему EurekaLog вообобще ничего не показывает? Хотя бы из интереса хотелось взглянуть. Исполняемый файл увеличился, опция для работы с VCL приложением стоит - а ни влогах (сменил путь на боле простой, на диске D), ни окна при закрытии приложения не появляется.


Сейчас придет Алексей, и мягко поинтересуется, а что же там в опциях-то, в частности включена ли вообще галка про Leaks во вкладке Memory problems, и остальным из этого включаемого подраздела.

И да, там еще и вкладка Resource Leaks есть, что с ней-то?
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113783
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По умолчанию в EurekaLog включена опция "Active only when running under debugger".

P.S. Но вообще я большого смысла не вижу использовать трейсеры исключений для локальной отладки. У них цель другая - сообщить о проблеме с полей. Отладочный же инструмент типа FastMM в FullDebugMode всегда покажет больше деталей, потому что может использовать более тяжёлую артиллерию.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113796
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Отладочный же инструмент типа FastMM в FullDebugMode

Добрый день. Но у меня D2006. Там он, кажется, порезанный.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113798
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там его вообще нет. С лёгкостью устанавливается полный.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113805
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andi_WEB,

ну ты по названию классов "утекающих" объектов посмотри хоть.
Как ты их создаешь и где удаляешь.
Неужели трудно. TWebSocket, TidTCPClient. У тебя же не миллион мест в коде, где они встречаются.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113808
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, уважаемые участники. Опции Leaks сам нашел, как-то но наитию. А вот Active only when running under debugger проглядел, каюсь. Но вот что интересно - окно со ссылкой при закрытии приложения стало появляться, но на долю секунды. Попасть в него тот еще квест. Может, там еще секреты есть?
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113809
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rgreat
Лучше MadExcept поставь.


+1
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113810
GunSmoker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такого точно быть не должно. Есть ненулевая вероятность, что возникает какое-то исключение при попытке показать отчёт. Под отладчиком если запустить - уведомление об исключении будут?

Ещё можно включить "Use Debug DCUs" и передать ключ командной строки --el_debug . При этом будет создан .csl файл в папке с .exe, куда будет записано всё, что происходит в приложении.

Я, правда, не уверен, что поможет первое или второе, поскольку утечки проверяются, когда в приложении уже всё убито - в том числе поддержка исключений. Скорее всего, тут надо по шагам смотреть.

Но если диалог появился, то файл отчёта должен быть уже создан. Он есть?
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113815
Andi_WEB
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
> Есть ненулевая вероятность, что возникает какое-то исключение при попытке показать отчёт.
Похоже, исключение возникает при закрытии моего приложения. Раньше его не было видно. Если умпеть нажать на окошко Еврики, то потом с ним можно работать. Разбираюсь дальше, что к чему, спасибо.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113842
Fr0sT-Brutal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov

Fr0sT-BrutalНу и фаст может не отдавать системе однажды выделенную память, запасая ее у себя
на будущее

Ни один ММ не отдаёт системе память сразу. Фаст не исключение.

Я не про сразу, а про вообще
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113914
swame2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Andi_WEB,

Расходуемая память не обязательно является утечкой.
Если классы копятся в памяти но, но будут освобождены при выходе, то они не будут показаны как утечка.
Нужно выводить статистику в момент работы приложения.
Например deleaker умеет https://www.deleaker.com
Или свою статистику считать, если подозрительных классов немного, то это элементарно.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113915
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swame2
Если классы копятся в памяти но, но будут освобождены при выходе, то они не будут показаны как утечка.
Нужно выводить статистику в момент работы приложения.

Со времен WinNT все ресурсы освобождаются при завершении процесса. :)

Если классу в коде явно не делается Free/Destroy он будет показан как утечка при выходе.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113917
Vizit0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
swame2
Andi_WEB,

Расходуемая память не обязательно является утечкой.
Если классы копятся в памяти но, но будут освобождены при выходе, то они не будут показаны как утечка.
Нужно выводить статистику в момент работы приложения.
Например deleaker умеет https://www.deleaker.com
Или свою статистику считать, если подозрительных классов немного, то это элементарно.


EL тоже умеет, но для этого надо чуток кода + это небыстро (совсем небыстро!) + потом надо постобработкой группировать обьекты - родная группировка как-то странно работает (съедает обьекты вроде, не помню уже подробностей, давно копал).
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40113930
istrebitel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rgreat

Со времен WinNT все ресурсы освобождаются при завершении процесса. :)

Если классу в коде явно не делается Free/Destroy он будет показан как утечка при выходе.

Можно плодить кучу экземпляров с овнером в виде главной формы или дата модуля, память расходуется, а утечки при выходе нет.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40114009
rgreat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vizit0r
EL тоже умеет, но для этого надо чуток кода + это небыстро (совсем небыстро!) + потом надо постобработкой группировать обьекты - родная группировка как-то странно работает (съедает обьекты вроде, не помню уже подробностей, давно копал).
MadExcept лучше.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40114028
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
istrebitel
rgreat

Со времен WinNT все ресурсы освобождаются при завершении процесса. :)

Если классу в коде явно не делается Free/Destroy он будет показан как утечка при выходе.

Можно плодить кучу экземпляров с овнером в виде главной формы или дата модуля, память расходуется, а утечки при выходе нет.
Ну, правильно. Потому, что для них будет явно вызван деструктор в деструкторе главной формы.
...
Рейтинг: 0 / 0
Утечки памяти в приложении - FasMM, EurekaLog
    #40114047
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andi_WEB
> Если мегабайт в секунду, то было бы...

Имелось в виду, на мегабайт в секунду начинает увеличиваться объем потребляемой памяти по диспетчеру. До этого - около 30 мегабайт на протяжении пары часов. Потом резко увеличиваетсмя до 130 мб в течении короткого промежутка времени. Вот прям случайно это земетил, совпадение. А потом опять несколько часов работает на 130 мб...

если утекают сущности, связанные с коннектом, то при массовых реконнектах может быть именно такая картинка
освобождается ли память при штатном завершении websocket соединения? закрытии tcp коннекта без отправки вебсоктного фрейма close? при обрыве соединения?
...
Рейтинг: 0 / 0
25 сообщений из 42, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Утечки памяти в приложении - FasMM, EurekaLog
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]