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

  • Автор темы Автор темы Serj1988
  • Дата начала Дата начала

Serj1988

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

Код:
Развернуть Свернуть Копировать
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
Правильно подсказывают - нужно периодически делать перезагрузку инстанса. Но метод instance.Reload(); не работает. Нужно делать перезагрузку инстанса кубиком - Браузер>Настройки>Перезагрузить инстанс.
 
Правильно подсказывают - нужно периодически делать перезагрузку инстанса. Но метод instance.Reload(); не работает. Нужно делать перезагрузку инстанса кубиком - Браузер>Настройки>Перезагрузить инстанс.
Как это сделать из под CodeCreator?

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

PS.
Но на вопрос почему каждое действие в браузере вызывает стабильный рост памяти ответа я так и не получил? С чем это связано и как это отключить - оно мне точно не нужно, ибо работа проекта в CC меня полностью устраивает. Делать что-то в PM желания нет.
С Код Креатором да... не получится... мы будем реализовывать метод instance.Reload в следующих версиях.
А то что рост памяти - ресурсы же должны потребляться для работы браузера. Это общий принцип работы. Если инстанс браузер будет часами без перезагрузки работать, то естественно он съест много ресурсов.
 
Так же вопрос - во сколько потоков вы выполняете проект в ZennoPoster. В КодКреаторе - один поток, в постере при многопотоке будет совсем другое потребление памяти.
 
У меня однопоточный проект (и там и там) - условия с CC один в один. В СС потребление памяти более чем на порядок ниже и оно растет очень медленно (это для меня приемлемо). Даже с закрытием табов проект в ZP кушает со временем больше памяти, чем в СС (вообще без каких либо манипуляций). И я на 100% уверен что косяк именно в ZP и том, как он работает с браузером. Есть еще вопрос когда вы перейдете на новый NET.Framework? Очень много либ тупо с CC не работает из-за древней кодовой базы.

PS. Да и FF у вас тоже старенький. Я бы на вашем месте давно бы кинул пользователей XP (всех версий), Vista (всех версий) и Windows 7 32bit. Запуск вашей программы на них вообще лишен всякого смысла по причине такого дикого жора памяти.
 
У меня однопоточный проект (и там и там) - условия с CC один в один. В СС потребление памяти более чем на порядок ниже и оно растет очень медленно (это для меня приемлемо). Даже с закрытием табов проект в ZP кушает со временем больше памяти, чем в СС (вообще без каких либо манипуляций). И я на 100% уверен что косяк именно в ZP и том, как он работает с браузером. Есть еще вопрос когда вы перейдете на новый NET.Framework? Очень много либ тупо с CC не работает из-за древней кодовой базы.

PS. Да и FF у вас тоже старенький. Я бы на вашем месте давно бы кинул пользователей XP (всех версий), Vista (всех версий) и Windows 7 32bit. Запуск вашей программы на них вообще лишен всякого смысла по причине такого дикого жора памяти.
У нас используется Net.framework 4.0. и выше, он далеко не старый Да и движок браузера у нас FF - 45
В ближайшее время мы выложим новую версию. Прошу вас попробовать как проект будет отрабатыват на ней, т.к. там будут серьезные правки работы браузера.
 
У нас используется Net.framework 4.0. и выше, он далеко не старый
Хорошо, опишите процесс подключения либы AngleSharp в CC, скомпиленной под NET 4.5+ . У меня не получилось!
Да и движок браузера у нас FF - 45
Уже доступна версия финальная 50. 51 на последней стадии беты.
Прошу вас попробовать как проект будет отрабатыват на ней, т.к. там будут серьезные правки работы браузера.
Когда?
 
Хорошо, опишите процесс подключения либы AngleSharp в CC, скомпиленной под NET 4.5+ . У меня не получилось!

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

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

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

Вложения

  • Test.rar
    Test.rar
    737,8 KB · Просмотры: 7
Последнее редактирование:
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 на саппорт в тикет.
 
Проконсультировался с разработчикамии - вы были правы, библиотека не подключается из-за разных версий Net.Framework. Если подключать, то только какими-то обходными путями.
Вот я и говорю что фреймворк у вас старый. Версии 4.5 уже скоро 5 лет исполнится, а вы все на версии 4.0 сидите. Тут уже как с браузерами не отмажетесь! По поводу утечки памяти кинул архив на тикет.
 
Так быстро получилось воспроизвести проблему?
Я же написал что оно у вас так по дефолту работает. Я купил продукт а он вот так вот работает замечательно. Хочу понять это баг или фича...
 
Я же написал что оно у вас так по дефолту работает. Я купил продукт а он вот так вот работает замечательно. Хочу понять это баг или фича...
Ну вот я увидел, что оказывает некоторый компонент отсутствует. Ответили вам в тикете.
 
Наличие этого компонента никак не влияет на потребление памяти, но я его все-равно поставил - ничего не изменилось. Кинул новый репорт.
 
Наличие этого компонента никак не влияет на потребление памяти, но я его все-равно поставил - ничего не изменилось. Кинул новый репорт.
Откуда вы знаете, что использует наша база) Спасибо посмотрим новый репорт.
 
Опытным путем было установлено, что наличие этого компонента вообще никак не влияет на скорость работы или функционал той части программы, которой пользуюсь. Удалил программу, перезагрузил виртуалку, поставил программу заново, прогнал еще раз. Результат тот же самый. Удалил из кода запуск отдельной консоли, остался только код перемещения по элементам на странице. Результат тот же самый
 
Последнее редактирование:
Нужно делать перезагрузку инстанса кубиком - Браузер>Настройки>Перезагрузить инстанс.
когда делаю так на 5.10.2.0 - то инстанс сбрасывается на http://prntscr.com/e41d6h..но шаб выполняется по красным линиям до наступления "открыть вкладку в браузере" благополучно пропуская всю серию проверок(((
 

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