Главная страница
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.015 c
15-1193210809
Pweq
2007-10-24 11:26
2007.11.25
Как как будет по-английски


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


2-1194116561
timekiller
2007-11-03 22:02
2007.11.25
Добраться до компонента перебором Components


15-1193131824
GEN++
2007-10-23 13:30
2007.11.25
Кто работал с Windows CE


15-1192885708
к2в2
2007-10-20 17:08
2007.11.25
илюстратор + delphi