Автор |
Повідомлення |
Повідомлення створено: 22. 03. 2013 [18:17]
|
barsuk73
Василий Барсуков
Автор теми
Зареєстрован(а) с: 22.03.2013
Повідомлення: 5
|
При просмотре проекта через web браузер, браузер кушает память. Пробывал с 0.8.0.3/5, в chrome и firefox ситуация одинаковая.
В той версии, что на сайте на главной странице (http://oscada.org:10002/WebVision/ses_AGLKS0/), тоже самое.
Это как-нибудь исправляется?
|
Повідомлення створено: 22. 03. 2013 [18:56]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"barsuk73" wrote:
При просмотре проекта через web браузер, браузер кушает память. Пробывал с 0.8.0.3/5, в chrome и firefox ситуация одинаковая.
В той версии, что на сайте на главной странице ( http://oscada.org:10002/WebVision/ses_AGLKS0/), тоже самое.
Это как-нибудь исправляется?
Нет. Природа у них такая при работе с динамикой.
Хотя лично у меня они не текут, да съедают мегабайт по 150, но затем всё более или менее стабилизируется.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 22. 03. 2013 [20:55]
|
barsuk73
Василий Барсуков
Автор теми
Зареєстрован(а) с: 22.03.2013
Повідомлення: 5
|
На объекте браузер оттяпал под гиг, точно не скажу за какое время, но больше чем за сутки - у людей желание перевести браузер в киоск моде и так оставить пожизненно.
Есть 2 решения проблемы:
1. В скрипт добавляется reload каждые N часов.
2. Попробывать разобраться где утекает, т.к. хром показывает утечку в замыканиях JS (хотя могу ошибаться, по JS я точно не специалист).
Думаю, придется прибегнуть к обоим вариантам.
"roman" wrote:
Хотя лично у меня они не текут, да съедают мегабайт по 150, но затем всё более или менее стабилизируется.
150 мб это даже если страница пару дней висит без перезагрузок?
|
Повідомлення створено: 22. 03. 2013 [21:09]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"barsuk73" wrote:
На объекте браузер оттяпал под гиг, точно не скажу за какое время, но больше чем за сутки - у людей желание перевести браузер в киоск моде и так оставить пожизненно.
Браузер и режим киоска, с круглосуточной работой, это не реально и UI.WebVision никогда для этого не позиционировался.
"barsuk73" wrote:
2. Попробывать разобраться где утекает, т.к. хром показывает утечку в замыканиях JS (хотя могу ошибаться, по JS я точно не специалист).
Кто такие замыкания? Где видно?
"barsuk73" wrote:
Думаю, придется прибегнуть к обоим вариантам.
Поглядите. Я лично явных проблем там не вижу, особенно с общим позиционирование JS на неочевидное выделение памяти и такое-же её освобождение.
"barsuk73" wrote:
150 мб это даже если страница пару дней висит без перезагрузок?
Это вот так:
Время(мин) : Chrom(Мб) : Firefox(Мб)
Запуск : 61 : 148
0 : 54 : 184
10 : 136 : 263
30 : 161 : 366
60 : 193 : 515
P.S. Firefox течёт жутко.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 22. 03. 2013 [21:21]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"barsuk73" wrote:
2. Попробывать разобраться где утекает, т.к. хром показывает утечку в замыканиях JS (хотя могу ошибаться, по JS я точно не специалист).
Похоже это течёт из-за постоянного-динамического обновления изображений, особенно трендов, где для обновления в имени указывается время, а браузер зачем-то сохраняет старые: http://localhost:10002/WebVision/ses_AGLKS/pg_so/pg_2/pg_ggraph/pg_1/wdg_trnd1?com=obj&tm=1878&xSc=1.00&ySc=1.00
Надо разобраться как по другому браузер заставить перегружать изображения, при этом не сохраняя старые.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 22. 03. 2013 [22:48]
|
barsuk73
Василий Барсуков
Автор теми
Зареєстрован(а) с: 22.03.2013
Повідомлення: 5
|
В хроме меню->инструменты->инструменты разработчика или ctrl+shift+I, далее profiles и несколько раз take heap snapshot.
В snapshot'ах видно что closure растут, это замыкания (пример http://habrahabr.ru/post/146784/)
"roman" wrote:
Браузер и режим киоска, с круглосуточной работой, это не реально и UI.WebVision никогда для этого не позиционировался.
Ну во-первых у меня были какие-то проблемы с разделением на скаду и тонкого QT клиента, во-вторых это одна из хотелок заказчика - чтоб все в браузере было. А сколько было смеха, когда поставили LinPAC 5141 со скадой и запустили браузер...
Если в скриптах что найду, обязательно сообщу, если нет, придется отказываться от браузера.
И еще - есть же сенсорные панели на Андройде (достаточно дешевые китайские), которые можно задействовать для дополнительного управления. Для них WebVision был бы самое то.
|
Повідомлення створено: 23. 03. 2013 [22:06]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"barsuk73" wrote:
В хроме меню->инструменты->инструменты разработчика или ctrl+shift+I, далее profiles и несколько раз take heap snapshot.
В snapshot'ах видно что closure растут, это замыкания (пример http://habrahabr.ru/post/146784/)
Ага. А знаете к чему это сводится? К распуханию массива: this.mousedown и this.mouseup, причём этот массив, в функции makeEl(), создаётся по новой, т.е. очищается. Как только не пробовал его очищать — всёравно пухнет. Просто цирк какой-то. Думаете почему я говорю о том, что Web не место на киосках, в режиме работы 24 часа в сутки, да потому, что подобные баги браузеров я разгребаю с самого начала разработки Web-модулей: http://wiki.oscada.org/Doc/WebCfgD#h810-9
"barsuk73" wrote:
Ну во-первых у меня были какие-то проблемы с разделением на скаду и тонкого QT клиента, во-вторых это одна из хотелок заказчика - чтоб все в браузере было. А сколько было смеха, когда поставили LinPAC 5141 со скадой и запустили браузер...
А что смешного то там?
"barsuk73" wrote:
И еще - есть же сенсорные панели на Андройде (достаточно дешевые китайские), которые можно задействовать для дополнительного управления. Для них WebVision был бы самое то.
Можно нативный-нормальный QT интерфейс OpenSCADA там запустить. Явно желающий в этом пока не было поэтому пока и сборок нет, а мне хоть и нужно, но очень неторопливо.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 23. 03. 2013 [23:12]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"roman" wrote:
Ага. А знаете к чему это сводится? К распуханию массива: this.mousedown и this.mouseup, причём этот массив, в функции makeEl(), создаётся по новой, т.е. очищается. Как только не пробовал его очищать — всёравно пухнет.
Это вроде обошёл, нужно было отдельные элементы поудалять — функции.
Сейчас с "кучей памяти" явных проблем нет, да и её утечка тогда не была основной. Завтра выгружу — поглядите.
А основное это накачка браузером динамических изображений и хранение их, можете это увидеть там-же "Resources"->"(localhost)"->"images". Причём он это-же делает для одноимённых изображений, пробовал tm=0 всегда.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 24. 03. 2013 [09:53]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"roman" wrote:
Это вроде обошёл, нужно было отдельные элементы поудалять — функции.
Не обошёл. Всё равно не очищает массивы с функциями. И как с этим бороться?
Подчищенный JS код и местами с прямым удалением объектов выгрузил.
Learn, learn and learn better than work, work and work.
|
Повідомлення створено: 24. 03. 2013 [22:20]
|
roman
Roman Savochenko
Moderator Contributor Developer
Зареєстрован(а) с: 12.12.2007
Повідомлення: 3750
|
"roman" wrote:
Не обошёл. Всё равно не очищает массивы с функциями. И как с этим бороться?
Таки проблема была в коде UI.WebVision, а именно в области вызова, т.е. эти массивы не всегда очищались.
Код UI.WebVision полностью переформатировал и исправил обход массивов: this.mousedown и this.mouseup.
В "куче памяти" утечек не видно, хотя в целом некоторая утечка осталась:
Время(мин) : Chrom(Мб) : Firefox(Мб)
Запуск : 58 : 150
0 : 52 : 178
10 : 129 : 188
30 : 136 : 196
60 : 144 : 204
Learn, learn and learn better than work, work and work.
|