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

Вниз

TOpenDialog + куда девается память?   Найти похожие ветки 

 
NAlex   (2007-10-22 22:29) [0]

Запущено приложение - занимает в памяти чуть более 3Мб. Далее использую этот код:
 OpenDialog1.InitialDir := ExtractFilePath(ParamStr(0));
 if OpenDialog1.Execute then
   ShowMessage(ChangeFileExt(OpenDialog1.FileName, ".txt"));

В процессе открытия дилога, приложение начиет съедать огромные куски памяти: до 8Мб. Что случается? Куда девается память?

А дальше ещё интересней: закрываю диалог расход памяти падает под 5 с лишним Мб. Напомню, что изначально приложение занимало ~3. Что вообще происходит?


 
Virgo_Style ©   (2007-10-22 23:00) [1]

а ты столбик Виртуальная память смотри. Это чтоб успокоиться. А чтобы наоборот, возбудиться, - сверни свое приложение и разверни опять, контролируя те же цифры, что и в [0] %-)


 
9899100   (2007-10-22 23:53) [2]

а еще загадочнее что ежели сделать вот так
procedure TForm1.Button1Click(Sender: TObject);
Var OpenDialog1:TOpenDialog;
begin
OpenDialog1:=TOpenDialog.Create(Nil);
OpenDialog1.InitialDir := ExtractFilePath(ParamStr(0));
if OpenDialog1.Execute then
  ShowMessage(ChangeFileExt(OpenDialog1.FileName, ".txt"));
OpenDialog1.Free;

end;

то то что объект создается динамически вообще не влияет на размер приложения в памяти :)


 
Petr V.Abramov   (2007-10-22 23:59) [3]

> OpenDialog1.Free;
менеджер памяти Borland сделает все честно, но винде память не отдаст.


 
9899100   (2007-10-23 00:31) [4]

>>Petr V.Abramov
я не про ето :)
размер занятой памяти приложением что в случае с уже установленным на форму компонентом, т.е. который автоматом создасться в месте с созданием формы, тот же самый что ты его создашь динамически, причем еще до его создания.


 
Virgo_Style ©   (2007-10-23 08:56) [5]

Магазин около твоего дома получил со склада ящик пива и продает его потихоньку. А если б он с завода банку заказывал только тогда, когда ты придешь и закажешь ее - ты б от жажды умер)

Так и тут. Менеджер памяти взял память и распределяет-перераспределяет ее "внутри" приложения, бо если за каждым байтом ходить на поклон к ОС - накладно выйдет.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
15-1192631024
Реактор
2007-10-17 18:23
2007.11.25
Проблема с печатью рисунка


15-1193302975
pavel_guzhanov
2007-10-25 13:02
2007.11.25
Как из командной строки добавить к имени файла текущую дату?


2-1193926814
webpauk
2007-11-01 17:20
2007.11.25
удаление элемента из Array


2-1193743945
timekiller
2007-10-30 14:32
2007.11.25
XML, поиск конкретных Атрибутов


3-1184361774
Anar
2007-07-14 01:22
2007.11.25
Как в DBGrid задать цвет конкретной строке?