Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.05.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.011 c
2-1209552738
корелаб
2008-04-30 14:52
2008.05.25
FB embedded и чарсет


15-1207740461
antonn (work)
2008-04-09 15:27
2008.05.25
вопрос по администрированию


2-1209116239
Int23
2008-04-25 13:37
2008.05.25
Как скрыть названия у ярлычков в PageControl


15-1207921981
Пробегал2...
2008-04-11 17:53
2008.05.25
WEB-сервер как способ управления программой


2-1209580786
Dmitry_177
2008-04-30 22:39
2008.05.25
как это работает?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский