Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

IdPOP31.Retrieve - утечка памяти!! ?? [D7, Win2k]


Gold ©   (2005-07-06 18:31:00) 

В цикле выполняется следующия команда
 IdPOP31.Retrieve(i,Amsg);
При каждом итерации выделяется память. (отслеживаю по диспетчеру задач)
Память больше не освобождается.
Что делять?
Спасибо


Gold   (2005-07-08 10:47:00) [1]

Стал в рантайме создавать объект IdPOP31, после обработки уничтожать... Все значительно улучшилось..


Slym   (2005-07-08 09:01:00) [2]

Медленная но верная фрагментация памяти, и никуда от нее не уйти. Сверни приложение разверни и TaskMan тебя обрадует.

Может какой глюк в Indy, но в TIdMessage наверняк нет, слишком уж заезженый компонент


Gold   (2005-07-07 12:27:00) [3]

Искал у себя... все заремарил, расходуется память.
Создаю новое приложение. на форму кидаю три компонентна типа
TIdPOP31, TIdMessage1, TButton1

пишу обработчик:

procedure TForm1.Button1Click(Sender: TObject);
const
  Host : string = '192.168.0.101' ;
  Password : string = '1234';
  Port : smallint = 110;
  UserId : string = 'a@maiil.ru';
Var
  i : INTEGER;
begin
  IdPOP31.Host :=  Host;
  IdPOP31.Password := Password;
  IdPOP31.Port := Port;
  IdPOP31.UserId := UserId ;
  IdPOP31.Connect;
  for i:=1 to IdPOP31.CheckMessages do
  begin
     IdMessage1.Clear;
     IdPOP31.Retrieve(i,IdMessage1);
  END;
end;


При каждом итерации выделяется память. (отслеживаю по диспетчеру задач)
Память больше не освобождается. Как вернуть ее злодейку?


Slym   (2005-07-07 09:06:00) [4]

В строке - IdPOP31.Retrieve(i,Amsg); мемлика нет...
А в твоем цикле (код которого ты не привел) есть!


Наверх

Титульная страница Поиск, карта сайта Написать письмо