Форум: "Потрепаться";
Текущий архив: 2003.07.14;
Скачать: [xml.tar.bz2];
ВнизПлодимся и размножаемся. Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c