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

Вниз

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

 
ZENsan ©   (2008-04-25 12:50) [0]

Подскажите с проблемой...все работает, но не очень хорошо.. что я не так делаю - почему память занимаемая процессом растёт в арифметической прогрессии...

program ProjectА;

{$APPTYPE CONSOLE}

uses
 Forms,
 ActiveX,
 OleCtrls,
 SHDocVw;

var
 Web: TWebBrowser;
 i: Integer;
 frm: TForm;

begin
 Application.Initialize;
 CoInitialize(nil);

 i := 0;
 frm := TForm.Create(nil);
 frm.Visible := False;
 repeat
   Web := TWebBrowser.Create(nil);
   Web.ParentWindow := frm.Handle;
   Web.Visible := False;
   Web.Hide;
   Application.ProcessMessages;
   Web.HandleNeeded;
   Web.Navigate("http://www.google.ru");
   repeat
     Application.ProcessMessages;
   until Web.ReadyState = READYSTATE_COMPLETE;
   Web.Free;
   i := i + 1;
   WriteLn(i);
 until i = 100;

 frm.Free;
end.


 
sniknik ©   (2008-04-25 12:57) [1]

Application.ProcessMessages; как и весь Application сдесь лишние.


 
sniknik ©   (2008-04-25 13:02) [2]

+
в консольных приложениях если нужен цикл выборки сообщений то его прям там и пишут.


 
ZENsan ©   (2008-04-25 13:04) [3]

Эсли не писать это, то просто ничего на пашет. браузер не успевает загрузить страницу вообще.


 
ZENsan ©   (2008-04-25 13:05) [4]

Формс и Аппликатион обйекты мне нужны, они это реализуют - зачем?
Но суть-то вопроса - куда память уходит?


 
ZENsan ©   (2008-04-25 13:06) [5]

Косоль здесь только для дебага.. чтобы выводить i


 
ZENsan ©   (2008-04-25 13:07) [6]

Я пробовал и в приложении форм это делать... тоже памаять только прибывает и прибывает... и никуда не освобождается..


 
ZENsan ©   (2008-04-25 13:09) [7]

Это же не мой объект TWebBrowser.. как я там обработку сообшений напишу?
Я просто даже по другому не умею..


 
sniknik ©   (2008-04-25 13:14) [8]

> браузер не успевает загрузить страницу вообще.
sleep-а в цикле должно хватить.

> Это же не мой объект TWebBrowser.. как я там обработку сообшений напишу?
в нем и не надо. кстати это ole-контрол, т.е. обертка над активх обьектом, который стартует но не завершается (сам обьект, а не обертка) вот отсюда наверняка и утечка.


 
Ega23 ©   (2008-04-25 13:15) [9]

1. Не вижу ни одного try..except и try..finally.
2. А что ты вообще делаешь?


 
Ega23 ©   (2008-04-25 13:16) [10]

Web.Free;
Web := nil;


?


 
sniknik ©   (2008-04-25 13:17) [11]

> sleep-а в цикле должно хватить.
сам проверить не могу, у нас сеть с прокси, может от этого, может нет, но у меня статуса READY не получает вообще, т.е. вешается (разбираться с что ему там нужно не хочется).


 
ZENsan ©   (2008-04-25 13:19) [12]

Слееп не идет, попробовал.. Не загружает..


> 2. А что ты вообще делаешь?


Просто прога бровсит адреса например. И при этом занимаемая ею память только приростает и не убывает никогда...


 
ZENsan ©   (2008-04-25 13:20) [13]

Эта прога просто пример, который ведёт себя подобным образом..
Может я неверно как-то создаю чего-то... или ещё что. Вы же меня знаете :)


 
sniknik ©   (2008-04-25 13:20) [14]

> Web.Free;
> Web := nil;
> ?
скорее
Web.Close/Quit/Stop/ чтото подобное.
Web.Free;


 
ZENsan ©   (2008-04-25 13:22) [15]

Да, пробовал... но на Web.Quit; вообще выдаёт Unspecified error.  Этот quit, наверное надо вызывать когда ready_state не completed.


 
ZENsan ©   (2008-04-25 13:24) [16]

Во! Stop... Память хотя и нарастает, но теперь в 10 раз медленнее...
где-то по 100 Кб на 100 navigate...


 
ZENsan ©   (2008-04-25 13:26) [17]

Спасибо sniksnik, мне просто в голово не могло придти, что надо СТОП вызывать, когда статус законченный... Но памаять куда-то всё равно просачивается..



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

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

Наверх




Память: 0.5 MB
Время: 0.015 c
15-1207919957
IvanBs
2008-04-11 17:19
2008.05.25
SSL


2-1209035934
webSQLNeederr
2008-04-24 15:18
2008.05.25
Заменить некоторые русские буквы на похожие из английского в текс


15-1207991877
@!!ex
2008-04-12 13:17
2008.05.25
Запрет запуска приложений


2-1208968041
Alex1987
2008-04-23 20:27
2008.05.25
Копирование в буфер Windows


2-1209299390
Азат
2008-04-27 16:29
2008.05.25
простая работа с графикой