Потребление оперативной памяти

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Внимание вопрос: почему в CodeCreator я могу гонять мой проект часами и при этом иметь приемлемое потребление оперативной памяти, но при запуске этого же проекта в Zennoposter при любом действии в браузере будь то обновление страницы или переход по элементам внутри одной страницы я получаю постоянный рост потребления ОЗУ? Из-за этого со временем проект начинает работать все медленнее и медленнее, хотя в CodeCreator проект через 10 часов работает так же быстро как и при запуске. Где и какие настройки подкрутить, чтобы получить работу проекта, аналогичную той, которую я наблюдаю в CodeCreator?
 

amyboose

Client
Регистрация
21.04.2016
Сообщения
2 312
Благодарностей
1 191
Баллы
113
Внимание вопрос: почему в CodeCreator я могу гонять мой проект часами и при этом иметь приемлемое потребление оперативной памяти, но при запуске этого же проекта в Zennoposter при любом действии в браузере будь то обновление страницы или переход по элементам внутри одной страницы я получаю постоянный рост потребления ОЗУ? Из-за этого со временем проект начинает работать все медленнее и медленнее, хотя в CodeCreator проект через 10 часов работает так же быстро как и при запуске. Где и какие настройки подкрутить, чтобы получить работу проекта, аналогичную той, которую я наблюдаю в CodeCreator?
Это называется утечка памяти и тут может быть ошибка в коде, либо в самой проге, которая не подчищает нужные данные. Сам я склоняюсь ко 2 варианту, так как при больших объемах уже встречался с этим.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Это называется утечка памяти и тут может быть ошибка в коде, либо в самой проге, которая не подчищает нужные данные. Сам я склоняюсь ко 2 варианту, так как при больших объемах уже встречался с этим.
Так в CodeCreator работает все хорошо. Причем такая хрень на всех проектах. У меня простейший проект, который в цикле пробегается по сотне элементов на странице и считывает значения с интервалом 30 минут, параллельно мониторя несколько других элементов на странице, в CC кушает 250-320Mb памяти (FFInstance.exe по диспетчеру задач) - это за 2,5 часа. За тоже самое время в ZennoPoster base.exe разрастается до 1 гигабайта и продолжает расти за каждый цикл на 200 мегабайт. Версия ПО 5.10.1.0. Я хз что делать, ибо перезапускать проект каждые 1-2 часа бред полный. Если в каких то случаях я могу на это пойти, то конкретно этот проект должен работать непрерывно в течение 10-12 часов. В CC он столько работает без проблем и без какой-либо деградации в скорости и жора памяти.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Может какая-то проблема с кэшем браузера в самом Zennoposter? Ибо если проект просто бегает в цикле и считает какую-нибудь математику, или просто цикл с таймерами работает, то все нормально - утечек памяти нет. Как только я что-то начинаю делать в браузере, да даже банальное обновление страницы в цикле - стабильно растет использование памяти. Господа админы и программисты объясните мне пожалуйста как? Как один и тот же браузер в CodeCreator и Zennoposter ведет себя по разному? Откуда такой дикий и неконтролируемый жор памяти? Только что запустил проект на 35 минут потребление памяти выросло с 250 мегабайт до 720 мегабайт. Просто пробежался в цикле по элементам страницы 2 раза. Повторяю еще раз в CodeCreator жора памяти при работе того же самого проекта нет.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Сейчас попробую на разных версиях ПО и ОС.
 

Sobesednic

Client
Регистрация
24.12.2012
Сообщения
391
Благодарностей
77
Баллы
28
перезагрузку инстанта нужно делать если проект работает в цикле
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Прописал в конце условия в цикле instance.Reload(); Только это ничего не изменило....
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Вроде как нашел способ освободить большую часть памяти, но это какой-то ***дец:

Код:
Tab tab=instance.ActiveTab;
byte[] cookie;

do
{
...
условия и функции;
...
cookie=instance.SaveCookie();
instance.CloseAllTabs();
instance.ClearCookie();
instance.ClearCache();
instance.Reload();
instance.LoadCookie(cookie);
tab=instance.GetTabByAddress("page");
tab.Navigate("...", "");
if (tab.IsBusy)
tab.WaitDownloading();
...
System.Threading.Thread.Sleep(333);
}
while(...)
На это тратится от ~15 секунд. Это лучше, чем перегружать проект, но все равно как-то криво написан Zennoposter.
 
  • Спасибо
Реакции: deopl

deopl

Client
Регистрация
06.12.2011
Сообщения
667
Благодарностей
126
Баллы
43

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Правильно подсказывают - нужно периодически делать перезагрузку инстанса. Но метод instance.Reload(); не работает. Нужно делать перезагрузку инстанса кубиком - Браузер>Настройки>Перезагрузить инстанс.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Правильно подсказывают - нужно периодически делать перезагрузку инстанса. Но метод instance.Reload(); не работает. Нужно делать перезагрузку инстанса кубиком - Браузер>Настройки>Перезагрузить инстанс.
Как это сделать из под CodeCreator?

PS.
Но на вопрос почему каждое действие в браузере вызывает стабильный рост памяти ответа я так и не получил? С чем это связано и как это отключить - оно мне точно не нужно, ибо работа проекта в CC меня полностью устраивает. Делать что-то в PM желания нет.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Как это сделать из под CodeCreator?

PS.
Но на вопрос почему каждое действие в браузере вызывает стабильный рост памяти ответа я так и не получил? С чем это связано и как это отключить - оно мне точно не нужно, ибо работа проекта в CC меня полностью устраивает. Делать что-то в PM желания нет.
С Код Креатором да... не получится... мы будем реализовывать метод instance.Reload в следующих версиях.
А то что рост памяти - ресурсы же должны потребляться для работы браузера. Это общий принцип работы. Если инстанс браузер будет часами без перезагрузки работать, то естественно он съест много ресурсов.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Так же вопрос - во сколько потоков вы выполняете проект в ZennoPoster. В КодКреаторе - один поток, в постере при многопотоке будет совсем другое потребление памяти.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
У меня однопоточный проект (и там и там) - условия с CC один в один. В СС потребление памяти более чем на порядок ниже и оно растет очень медленно (это для меня приемлемо). Даже с закрытием табов проект в ZP кушает со временем больше памяти, чем в СС (вообще без каких либо манипуляций). И я на 100% уверен что косяк именно в ZP и том, как он работает с браузером. Есть еще вопрос когда вы перейдете на новый NET.Framework? Очень много либ тупо с CC не работает из-за древней кодовой базы.

PS. Да и FF у вас тоже старенький. Я бы на вашем месте давно бы кинул пользователей XP (всех версий), Vista (всех версий) и Windows 7 32bit. Запуск вашей программы на них вообще лишен всякого смысла по причине такого дикого жора памяти.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
У меня однопоточный проект (и там и там) - условия с CC один в один. В СС потребление памяти более чем на порядок ниже и оно растет очень медленно (это для меня приемлемо). Даже с закрытием табов проект в ZP кушает со временем больше памяти, чем в СС (вообще без каких либо манипуляций). И я на 100% уверен что косяк именно в ZP и том, как он работает с браузером. Есть еще вопрос когда вы перейдете на новый NET.Framework? Очень много либ тупо с CC не работает из-за древней кодовой базы.

PS. Да и FF у вас тоже старенький. Я бы на вашем месте давно бы кинул пользователей XP (всех версий), Vista (всех версий) и Windows 7 32bit. Запуск вашей программы на них вообще лишен всякого смысла по причине такого дикого жора памяти.
У нас используется Net.framework 4.0. и выше, он далеко не старый Да и движок браузера у нас FF - 45
В ближайшее время мы выложим новую версию. Прошу вас попробовать как проект будет отрабатыват на ней, т.к. там будут серьезные правки работы браузера.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
У нас используется Net.framework 4.0. и выше, он далеко не старый
Хорошо, опишите процесс подключения либы AngleSharp в CC, скомпиленной под NET 4.5+ . У меня не получилось!
Да и движок браузера у нас FF - 45
Уже доступна версия финальная 50. 51 на последней стадии беты.
Прошу вас попробовать как проект будет отрабатыват на ней, т.к. там будут серьезные правки работы браузера.
Когда?
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Хорошо, опишите процесс подключения либы AngleSharp в CC, скомпиленной под NET 4.5+ . У меня не получилось!

Уже доступна версия финальная 50. 51 на последней стадии беты.

Когда?
Библиотека подключается также как и любая другая. Для подключения вашей библиотеки должен стоять Net.Framework 4.5+ в системе. Если используете PHP-код, то для него работает компилятор Phalanger, имейте это ввиду.
К сожалению, мы не можем так часто менять версии браузера, как это делает Firefox. Все таки у нас специальная программа и смена движка браузера требует определенной адаптации софта. Но это не узначает что версия 45 - старая как вы сказали.
Новая версия уже доступа, смотрите раздел Новости.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Библиотека подключается также как и любая другая. Для подключения вашей библиотеки должен стоять Net.Framework 4.5+ в системе.
У меня стоят все версии, начиная с 4.0 + установлен Visual Studio 2015. Но при попытке добавить сборку AngleSharp под NET 4.5 я получаю вот такую вот ошибку:
16:48:48 Внутренняя ошибка: Открытие проекта Could not load exported type data for assembly 'AngleSharp, Version=0.9.9.0, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea'.
И далее проект перестает открываться, пока я не удалю dll из папки ExternalAssemblies.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
У меня стоят все версии, начиная с 4.0 + установлен Visual Studio 2015. Но при попытке добавить сборку AngleSharp под NET 4.5 я получаю вот такую вот ошибку:
16:48:48 Внутренняя ошибка: Открытие проекта Could not load exported type data for assembly 'AngleSharp, Version=0.9.9.0, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea'.
И далее проект перестает открываться, пока я не удалю dll из папки ExternalAssemblies.
Сейчас пока не могу сказать в чем проблема. Если можно, приложите пример проекта с добавлением библиотеки.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Сейчас пока не могу сказать в чем проблема. Если можно, приложите пример проекта с добавлением библиотеки.
20:24:59 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets Не удается разрешить основную ссылку "AngleSharp", поскольку она была построена для платформы ".NETFramework,Version=v4.5". Это более поздняя версия по сравнению с текущей целевой платформой ".NETFramework,Version=v4.0".. [Строка 1605; Колонка 5]
Предыдущее сообщение для сборки под 4.0. В архиве лежит DLL под 4.5 версию, она добавляется, но если прописать директиву usung AngleSharp; выдает ошибку:
20:26:25 Program.cs Не удалось найти имя типа или пространства имен "AngleSharp" (пропущена директива using или ссылка на сборку?). [Строка 13; Колонка 7]
При этом я могу писать код, но он уже не компилится.

Поставил последнюю версию - с потреблением памяти ничего не изменилось...
 

Вложения

  • 737,8 КБ Просмотры: 7
Последнее редактирование:

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
20:24:59 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Microsoft.Common.targets Не удается разрешить основную ссылку "AngleSharp", поскольку она была построена для платформы ".NETFramework,Version=v4.5". Это более поздняя версия по сравнению с текущей целевой платформой ".NETFramework,Version=v4.0".. [Строка 1605; Колонка 5]
Предыдущее сообщение для сборки под 4.0. В архиве лежит DLL под 4.5 версию, она добавляется, но если прописать директиву usung AngleSharp; выдает ошибку:
20:26:25 Program.cs Не удалось найти имя типа или пространства имен "AngleSharp" (пропущена директива using или ссылка на сборку?). [Строка 13; Колонка 7]
При этом я могу писать код, но он уже не компилится.

Поставил последнюю версию - с потреблением памяти ничего не изменилось...
Проконсультировался с разработчикамии - вы были правы, библиотека не подключается из-за разных версий Net.Framework. Если подключать, то только какими-то обходными путями.
По поводу утечки памяти, включите Подробный лог:
Подробный лог.png
Воспроизведите проблему и сделайте диагностику (Diagnostic.exe из папки программы). Пришлите созданный report.zip на саппорт в тикет.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Проконсультировался с разработчикамии - вы были правы, библиотека не подключается из-за разных версий Net.Framework. Если подключать, то только какими-то обходными путями.
Вот я и говорю что фреймворк у вас старый. Версии 4.5 уже скоро 5 лет исполнится, а вы все на версии 4.0 сидите. Тут уже как с браузерами не отмажетесь! По поводу утечки памяти кинул архив на тикет.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Так быстро получилось воспроизвести проблему?
Я же написал что оно у вас так по дефолту работает. Я купил продукт а он вот так вот работает замечательно. Хочу понять это баг или фича...
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Я же написал что оно у вас так по дефолту работает. Я купил продукт а он вот так вот работает замечательно. Хочу понять это баг или фича...
Ну вот я увидел, что оказывает некоторый компонент отсутствует. Ответили вам в тикете.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Наличие этого компонента никак не влияет на потребление памяти, но я его все-равно поставил - ничего не изменилось. Кинул новый репорт.
 

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 913
Баллы
113
Наличие этого компонента никак не влияет на потребление памяти, но я его все-равно поставил - ничего не изменилось. Кинул новый репорт.
Откуда вы знаете, что использует наша база) Спасибо посмотрим новый репорт.
 

Serj1988

Client
Регистрация
19.07.2016
Сообщения
29
Благодарностей
2
Баллы
3
Опытным путем было установлено, что наличие этого компонента вообще никак не влияет на скорость работы или функционал той части программы, которой пользуюсь. Удалил программу, перезагрузил виртуалку, поставил программу заново, прогнал еще раз. Результат тот же самый. Удалил из кода запуск отдельной консоли, остался только код перемещения по элементам на странице. Результат тот же самый
 
Последнее редактирование:

lzlmrf

Client
Регистрация
14.08.2015
Сообщения
488
Благодарностей
149
Баллы
43
Нужно делать перезагрузку инстанса кубиком - Браузер>Настройки>Перезагрузить инстанс.
когда делаю так на 5.10.2.0 - то инстанс сбрасывается на http://prntscr.com/e41d6h..но шаб выполняется по красным линиям до наступления "открыть вкладку в браузере" благополучно пропуская всю серию проверок(((
 

Кто просматривает тему: (Всего: 3, Пользователи: 0, Гости: 3)