Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как принудительно уменьшить объем памяти, занимаемый программой? [D7, WinXP]


Страницы:   1 2

Думатель ©   (2008-01-29 06:49:00) 

День добрый.

Ситуация такая: в процессе работы программы объем занимаемой памяти (судя по task manager) растет медленно, но верно. Доходит до 500Мб через 4 часа и программа умирает.

Утечек памяти нет! Проверял 2 профилерами (memcheck и последняя EurekaLog). Все создаваемые объекты уничтожаются нормально.

Вот только в программе довольно часто происходят ASSIGN'ы графических объектов друг другу, думаю именно тут проблема.

Вопрос такой: есть ли методы принудительной очистки ресурсов приложения? Сборка мусора или что-то похожее...

Спасибо.


Семеныч   (2008-01-29 10:20:00) [21]

> Думатель   (29.01.08 06:49)  

> судя по task manager

Это еще не показатель утечек. Даже когда программа освобождает память, то менеджер памяти Delphi не спешит возвращать ее системе. А Task Manager показывает, сколько памяти отъедено именно у системы, поэтому его показания могут расти даже когда в программе действительно нет утечек.

> Проверял 2 профилерами (memcheck и последняя EurekaLog). Все
> создаваемые объекты уничтожаются нормально.

Тут еще важно КОГДА они уничтожаются. Если при завершении программы, то профайлер покажет, что все хорошо - а ситуация при этом может быть такая же, как у Вас. Проверьте уничтожается ли каждый объект СРАЗУ, как только он становится не нужен.

> Вот только в программе довольно часто происходят ASSIGN'ы графических
> объектов друг другу, думаю именно тут проблема.

А какая тут может быть проблема? Если объект - источник становится после assign уже не нужен, то его надо сразу же уничтожить, вот и все.


Riply   (2008-01-29 09:51:00) [22]

> [0] Думатель   (29.01.08 06:49)
> Вопрос такой: есть ли методы принудительной очистки ресурсов приложения?

Надо искать и исправлять саму ошибку, а не героически бороться с ее последствиями.
Не IMHO.


miek   (2008-01-29 09:23:00) [23]

ищи утечки. не делай вид, что их нет.

а метод очистки простой - ExitProcess или TerminateProcess


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо