Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

Как принудительно уменьшить объем памяти, занимаемый программой?   Найти похожие ветки 

 
Думатель   (2008-01-29 06:49) [0]

День добрый.

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

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

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

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

Спасибо.


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

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

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


 
Riply ©   (2008-01-29 09:51) [2]

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

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


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

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

> судя по task manager

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

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

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

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

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


 
Думатель   (2008-01-29 10:32) [4]

Спасибо за ответы. Буду думать и искать дальше :)


 
Anatoly Podgoretsky ©   (2008-01-29 10:35) [5]

> Думатель  (29.01.2008 06:49:00)  [0]

Какой именно памяти?


 
Думатель   (2008-01-29 10:40) [6]


> Какой именно памяти?


Глядя на task manager - просто "ПАМЯТЬ" И "ВИРТУАЛЬНАЯ ПАМЯТЬ"
Растут оба параметра. Примерно 50 на 50


 
homm ©   (2008-01-29 10:46) [7]

> [5] Anatoly Podgoretsky ©   (29.01.08 10:35)
> Какой именно памяти?

Надо пологать, оперативной.


 
Anatoly Podgoretsky ©   (2008-01-29 10:51) [8]

Так какой, из двух, ты именно ты хочешь уменьшить?


 
Думатель   (2008-01-29 11:53) [9]


> Anatoly Podgoretsky ©   (29.01.08 10:51) [8]
> Так какой, из двух, ты именно ты хочешь уменьшить?

Да хотя бы любой :(
В идеале - оба.
Мне бы только направление поиска задать - я найду решение... надеюсь...


 
homm ©   (2008-01-29 11:54) [10]

> [9] Думатель   (29.01.08 11:53)
> Мне бы только направление поиска задать

Ищи утечки. Уже задали.


 
Anatoly Podgoretsky ©   (2008-01-29 12:26) [11]

В АПИ есть функция управления рабочим пространством, имя не помню, чтото похожее на setworkingspace


 
homm ©   (2008-01-29 12:28) [12]

> [11] Anatoly Podgoretsky ©   (29.01.08 12:26)

Блин, ну у человека явно память течет, вы предлагаете ему сделать так, что бы таскман на это закрыл глаза и жить дальше. Это же не Ваш метод.


 
Думатель   (2008-01-29 12:46) [13]


> Ищи утечки. Уже задали.

Да нету утечек! Я что, среди 10 создаваемых объектов не могу отследить корректное их удаление?


 
Palladin ©   (2008-01-29 12:57) [14]


> Да нету утечек!

Я верю - из тебя получится отличный писать-фантаст.


 
Riply ©   (2008-01-29 12:58) [15]

>  [13] Думатель   (29.01.08 12:46)
> Да нету утечек! Я что, среди 10 создаваемых объектов не могу отследить корректное их удаление?

Чудес не бывает :)


 
homm ©   (2008-01-29 13:11) [16]

> [13] Думатель   (29.01.08 12:46)

Ты случайно не с CLX под дельфи 6 пишеш? :)


 
Kolan ©   (2008-01-29 13:14) [17]

Утечек, которые показывают профайлеры может и нет. Может ты перед закрытием все освобождаешь.
Но в процессе работы, ты ненужное не мочишь&#133 Ищи где такие места могут быть.


 
Игорь Шевченко ©   (2008-01-29 13:29) [18]


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


Ищи утечку. Она есть.


 
ANB ©   (2008-01-29 13:34) [19]


> Да нету утечек! Я что, среди 10 создаваемых объектов не
> могу отследить корректное их удаление?

Я раз для красивости прикрутил девэкспрессовский прогресс бар.
:)
После того как у меня программа сожрала за 2 часа работы 1,5 гигабайта и сдохла я больше не пользуюсь без совсем уж необходимости "красивыми" компонентами.
:)
ЗЫ. Заменил прогресс бар на штатный и программа за сутки работы больше 100 метров не наедала.


 
Kolan ©   (2008-01-29 13:59) [20]

> ЗЫ. Заменил прогресс бар на штатный и программа за сутки
> работы больше 100 метров не наедала.

Это, на самом деле, страшно&#133


 
Anatoly Podgoretsky ©   (2008-01-29 14:12) [21]

> homm  (29.01.2008 12:28:12)  [12]

Я отвечаю на заданный вопрос, ну а последствия тяжелы, просто это бессмысленно, ну освободит, а программа снова в судорогах займет. Но на какое то время он получит удовлетворение, а для чего оно ему нужно я не знаю, не Фрейд.


 
Anatoly Podgoretsky ©   (2008-01-29 14:12) [22]

> Думатель  (29.01.2008 12:46:13)  [13]

Ну ну. и при этом говоришь про графику, знаешь сколько там подводных камней с ресурсами.


 
homm ©   (2008-01-29 21:41) [23]

> [19] ANB ©   (29.01.08 13:34)
> После того как у меня программа сожрала за 2 часа работы
> 1,5 гигабайта и сдохла я больше не пользуюсь без совсем
> уж необходимости "красивыми" компонентами.

Это тебе нужео было моими компонентами пользоваться :) Вот только, боюсь, под VCL я наверное уже не портирую их уже никогда.



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

Форум: "Начинающим";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.052 c
15-1200905088
Washington
2008-01-21 11:44
2008.02.24
WMI SDK


15-1200988460
shlst
2008-01-22 10:54
2008.02.24
Потерянный доступ!


2-1201555963
IntruderLab
2008-01-29 00:32
2008.02.24
TStringGrid


15-1200274708
KilkennyCat
2008-01-14 04:38
2008.02.24
Книги, Электронные. Когда их очень много...


2-1201861064
mrFreeman2007
2008-02-01 13:17
2008.02.24
Завершение работы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский