Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Отжор памяти и как с ним бороться :)


Автор: Kiber_rat 24.4.2002, 05:03
И снова вопрос к всезнающему All :) С чем связано то, что моё приложение в начале работы ест, к примеру, 3 метра памяти, а после того как я открыл и закрыл пару диалогов (Color и Picture) оно у меня начинает есть в 2 раза больше?
Вот пример вызова диалога:
Код

procedure TClock.MColorClick(Sender: TObject);
var
Fcol:Longint;
begin
 ColorDialog1.Execute;
 Label1.Font.Color:=ColorDialog1.Color;
 Fcol:=Label1.Font.Color;
 Registr:=TRegistry.Create;
 Registr.RootKey:=HKEY_LOCAL_MACHINE;
 Registr.OpenKey('SOFTWARE\Kiber_rat software\AClock', True);
 Registr.WriteInteger('Fcolor', Fcol);
 Registr.CloseKey;
 Registr.Free;
 ColorDialog1.Free;
end;

Собственно метод Free я попытался вставить в расчёте на то, что память освободится, но увы... Помогите плз, потому как простая прога отжирающая 6 метров это не есть хорошо :)

Автор: Vit 24.4.2002, 05:13
Скорее всего дело не в проге. Стандартные диалоги зашиты в виндах, в виде DLL или ActiveX при их вызове соответствующие DLL открываются и даже после закрытия диалогов какое-то время кэшируются в памяти... Хотя, может быть что-то еще - типа фрагментации памяти (Я не знаю).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)