Главная страница
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.016 c
5-1163673923
Krants
2006-11-16 13:45
2007.11.25
Использование дополнительного редактора в О.Іnspector


15-1193210809
Pweq
2007-10-24 11:26
2007.11.25
Как как будет по-английски


1-1189168940
istok
2007-09-07 16:42
2007.11.25
synchronize...


15-1192899638
Cerberus
2007-10-20 21:00
2007.11.25
Можноли программно открыть страницу в уже открытом IE


15-1193238321
@!!ex
2007-10-24 19:05
2007.11.25
Проблемы с видухой.