|
Освобождение памяти при работе с ПолеHTMLДокумента | ☑ | ||
|---|---|---|---|---|
|
0
nemoxp
01.08.13
✎
20:26
|
Есть необходимость программно, в цикле формировать HTML документ со скриптами и для его компиляции загружать в ПолеHTMLДокумента (чтобы получить чистый хтмл документ с результатами выполнения скриптов). Далее я получаю результирующий текст HTML и нахожу в нем нужный результат.
Проблема в том, что при постоянной загрузке HTML отнимается оперативка, 100 таких обновлений и 3 Гб как не было. Память не освобождается. Пробовал после каждого цикла писать ПолеHTMLДокумента.Документ.clear() и ПолеHTMLДокумента.Документ.location....(что-то там).... = "about:blank" Не помогает. Стандартных методов не нашел. Пишут что в 1с нет "сборщика мусора", что типа нельзя память освобождать. Должно быть альтернативное решение, раз так. Надеюсь на помощь. |
|||
|
1
H A D G E H O G s
01.08.13
✎
21:02
|
Нууу., неурожай.
Вот щас пишу приблуду, чтобы 5 меговые jpeg файлеги 100500 раз отображать и печатать прямо из 1С, а то и с ними херня. В рамках Нетленки 3.0. Она возрождается из пепла! |
|||
|
2
Asmody
01.08.13
✎
21:10
|
(0) прикрути node.js для своих скриптов и не мучай 1Ску
|
|||
|
3
shurikvz
01.08.13
✎
23:12
|
(0) Не сборщика мусора нет, а методов управления сборщиком мусора. Но даже если бы и были - это бы не помогло. Если я правильно понял о чем речь (и это тот же случай), то да, действительно, есть такой глюк WebBrowser, как жор памяти при навигации по ссылкам.
На c# мне помогла простейшая вещь из двух строк: ------- WebBrowser.Reload(); //Да, тупо просто обновить текущую страницу GC.Collect(); ------- У поляhtmlдокумента метода Refresh() вроде нет, возможно это будет что-то вроде: v8: Обновление ПолеHTMLдокумента , ну а на сборщик мусора забить. Или еще вариант - попробовать использовать "InternetExplorer.Application" |
|||
|
4
nemoxp
02.08.13
✎
00:38
|
Те кто подключался через КОМ (InternetExplorer.Application) говорят что та же фигня. Читал, советовался, говорят что пытаться очистить память в 1с бесполезно.Это все же предметно ориентированный язык и до полноценного объектно-ориентированного языка ему еще далеко. Хотя, КОМ может спасти. Если все будет происходить в отдельном процессе, то его можно будет убивать раз в определенное время и освобождать память. Как например при работе с Эксел метод Close().
|
| Форум | Правила | Описание | Секции | Поиск |