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

Вниз

Плодимся и размножаемся.   Найти похожие ветки 

 
LinOS ©   (2003-06-26 07:47) [0]

Отлаживаю программу и не понимаю как Delphi освобождает память?
Есть MainForm из него вызываю другие
try
OtherForm := TOtherForm.Create(self);
OtherForm.ShowModal;
finally
OtherForm.Free;
end;

В результате при каждом вызове формы OtherForm размер памяти, занимаемой моим приложением неуклонно растет.
Что делаю не так?


 
Skier ©   (2003-06-26 08:32) [1]

>LinOS © (26.06.03 07:47)
Так будет корректней (хотя это не суть, т.к. форма
освобождаеттся правильно)
OtherForm := TOtherForm.Create(self);
try
OtherForm.ShowModal;
finally
OtherForm.Free;
end; //try

Видимо (?) проблема где-то в другом месте...


 
Anatoly Podgoretsky ©   (2003-06-26 09:25) [2]

Ошибка в OtherForm


 
LinOS ©   (2003-06-26 10:24) [3]

А какая может быть ошибка?


 
ZeroDivide ©   (2003-06-26 10:43) [4]

Все правильно, а ошибка действительно в OtherForm.
Посмотри внимательно код твоей формы, это он гадит в память. Форма то освобождается корректно, а вот объекты созданные ей вероятно нет. Чтобы они тоже освободились поставь им парент OtherForm, тогда можно будет не следить за их освобождением,
OtherForm.Free их освободит.


 
Карелин Артем ©   (2003-06-26 10:44) [5]

>В результате при каждом вызове формы OtherForm размер памяти, занимаемой моим приложением неуклонно растет.
>Что делаю не так?
Смотришь в диспетчере задач? А он разве показывает общий обьем памяти для процесса? А если свернуть-развернуть прогу показатель изменятся???


 
DiamondShark ©   (2003-06-26 10:47) [6]

Тут одно из двух:

1) Грабли где-то в недрах ОтхерФорм.

2) Нормальное поведение менеджера памяти. Если между созданиями ОтхерФорм ещё что-то делается с памятью, например, какая-либо работа со строками, создание ещё чего-то, то занятая ранее под ОтхерФорм память вполне может стать фрагментированной, и менеджер вынужден запросить у системы новую.

В первом случае с вопросами типа "А какая может быть ошибка?" -- к телепатам.

Второй случай -- штатное поведение. Менеджеру памяти надо "разогнаться", после того, как образуется кой-какой резерв начнёт эффективно работать механизм дефрагментации и потребность в памяти "устаканится". Особенно, если производятся более-менее однообразные действия.



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

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

Наверх




Память: 0.48 MB
Время: 0.027 c
1-44643
Lana
2003-07-02 11:12
2003.07.14
Radiogroup в выпадающем списке


3-44564
Kostja
2003-06-19 00:22
2003.07.14
Вывод содержония


1-44743
JFX
2003-07-01 13:55
2003.07.14
Вставка картинок в компоненты


3-44592
Fuelfire
2003-06-21 06:33
2003.07.14
Memo-поле и Paradox


1-44737
Soft
2003-07-01 13:19
2003.07.14
Как смапировать файл в память