Проблемы с памятью



  • BAS потребляет очень много памяти при загрузке страниц. При запуске 30 потоков занял всю доступную память (6гб оперативной и 8гб файла подкачки). Windows дико тормозит из-за нехватки памяти. Можно ли добавить действие, чтобы очищалась неиспользуемая память, или как-то пофиксить, чтобы это происходило автоматически? Мозилла потребляла намного меньше, когда запускал много браузеров, да и на хроме проверил недавно, около 80Мб потребляет загруженный сайт.


  • administrators

    @blackhacker если брать сайт, который вы указали, то отключение картинок уменьшает потребление оперативки с 500 до 100 мб.
    Но еще буду смотреть по этому вопросу.


  • administrators

    @blackhacker

    Почему картинки потребляют так много памяти?

    Это интересный вопрос, я провел такой эксперимент - открыл 55 хром и стал перегружать картинку несколько раз подряд. Размер картинки 189кб, не так уж много. Память стала расти с каждой перезагрузкой до 350 мб. Если взять картинку побольше(1мб), то размер выделяемой памяти будет до 550 мб. Память не очищается со временем.

    Вот видео
    http://i.imgur.com/ta6spgo.gif

    Точно так же ведет себя и БАС,
    Что самое интересное, если установить хром на виртуалку с 2 гб оперативки, то та же картинка будет занимать максимум 30 мб, а ваш сайт максимум 80 мб, что в хроме, что в БАС!!

    В данном случае БАС ведет себя точно так же, как хром, но от этого не легче. Пробую включить нормальный режим, а вам могу посоветовать только отключать картинки.

    UPD. Немного поспешил с цифрами, но разница на вм и на рабочем компе действительно есть 150 против 200. Наверное, хром бережнее использует память если ее меньше.



  • @support решении напрашивается само ) дать понять гугл хрому встроенному в бас, что у нас только 2ГБ оперативки ))


  • administrators

    This post is deleted!


  • @support А в движке браузера можно сделать автоматическую очистку памяти?


  • administrators

    @blackhacker Тоже думал об этом. Сейчас ищу решение.



  • @support Еще во время тестов скрипта обнаружил, что по истечению времени браузеры некоторых потоков перестают открываться, так же в статистике метрики у них уменьшено количество просмотров. Открыл отчет, там скопилось 8741 ошибка - Таймаут во время выполнения Reset. С чем может быть связана неоткрываемость браузера и такое количество ошибок Reset?



  • @support said in Проблемы с памятью:

    @blackhacker Тоже думал об этом. Сейчас ищу решение.

    Может, сделать в конструкторе команду перезапуска процесса Worker? На крайний случай. Если есть полные исходники движка браузера, можно поискать, куда он там память резервирует при каждой загрузке картинки, но есть вероятность, что это сложно и долго, поэтому наверно проще перезапускать процесс.

    Если в действии "Сброс" поставить "Перезапуск процесса", это никак не повлияет на выполняемость скрипта, он продолжит выполняться после сброса?


  • administrators

    @blackhacker said in Проблемы с памятью:

    Открыл отчет, там скопилось 8741 ошибка - Таймаут во время выполнения Reset.

    Это вылет. Запустите эту версию bablosoft.com/distr/BrowserAutomationStudioDevelopment/16.1.0.debug/distr.zip когда вылетит, появится файл crashdump.dmp, пришлите мне его, я пофикшу


  • administrators

    @blackhacker said in Проблемы с памятью:

    Может, сделать в конструкторе команду перезапуска процесса Worker? На крайний случай.

    Есть такая. Сброс с флажком "Перезапуск процесса"


  • administrators

    @blackhacker said in Проблемы с памятью:

    Если есть полные исходники движка браузера, можно поискать, куда он там память резервирует при каждой загрузке картинки, но есть вероятность, что это сложно и долго, поэтому наверно проще перезапускать процесс.

    Исходники хрома огромны. Если в фф, я еще немного разбирался, то тут найти нужную вещь очень сложно. Я подозреваю, что это какой-то механизм, чтобы ускорить отрисовку в ущерб памяти. Как раз сегодня буду пытаться найти/отключить.

    Если в действии "Сброс" поставить "Перезапуск процесса", это никак не повлияет на выполняемость скрипта, он продолжит выполняться после сброса?

    Нет, не повлияет. Перезапускается только браузер, вся логика/переменные в другом процессе.



  • @support said in Проблемы с памятью:

    @blackhacker said in Проблемы с памятью:

    Открыл отчет, там скопилось 8741 ошибка - Таймаут во время выполнения Reset.

    Это вылет. Запустите эту версию bablosoft.com/distr/BrowserAutomationStudioDevelopment/16.1.0.debug/distr.zip когда вылетит, появится файл crashdump.dmp, пришлите мне его, я пофикшу

    Спасибо, попробую потом. Поставил Reset в конец шаблона, с перезапуском процесса, вроде больше не вылетало, и память очищается теперь. Жалко только, что мой скрипт не покупают) Если скомпилирую скрипт, и запущу отдельно, там тоже создастся crashdump?


  • administrators

    @blackhacker Если процесс не вылетает, crashdump не создастся.


  • administrators

    @blackhacker

    Жалко только, что мой скрипт не покупают)

    Я бы рекомендовал сделать еще бесплатное демо в 1 поток, а я когда буду поднимать тему на форумах в понедельник упомяну ваш скрипт.



  • @support said in Проблемы с памятью:

    @blackhacker Если процесс не вылетает, crashdump не создастся.

    А, понял. Но еще имел ввиду, что скрипт будет запускаться вне BAS, скомпилированный вариант. Но там же наверно одинаковое приложение исполняет скрипты, и разницы нет?


  • administrators

    @blackhacker Есть разница, если нужен дамп в скомпилированном варианте, нужно подменить папку worker на ту, что в архиве.


Log in to reply
 

Looks like your connection to Bablosoft was lost, please wait while we try to reconnect.