Есть скрипт работающий с яндекс картами - работает около получаса, начинает юзать очень много памяти и прекращает работу с такой вот ошибкой. изображения отключены, предполагаю что из-за большого "веса" страниц яндекс карт.
Отправлено 27 февраля 2014 - 18:38
Есть скрипт работающий с яндекс картами - работает около получаса, начинает юзать очень много памяти и прекращает работу с такой вот ошибкой. изображения отключены, предполагаю что из-за большого "веса" страниц яндекс карт.
Отправлено 27 февраля 2014 - 18:59
чистка кук и обновление страницы не помогает, ghostdriver.log выдаёт 300 строк такого содержания
[ERROR - 2014-02-27T20:11:45.709Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1393531905658
Отправлено 27 февраля 2014 - 19:49
Скорее всего это утечка памяти в фантоме - https://github.com/a...js/issues/11390.
Возможные варианты обхода:
Должен сказать, что у меня в некоторых тестах фантом выжирал гиг и падал минут через 5, на самом обычном сайте - из-за не очень аккуратной работы с инстансами страниц, которые создавались на каждый чих. Комбинация пунктов 1 и 3 помогла.
Отправлено 27 февраля 2014 - 20:29
Скорее всего это утечка памяти в фантоме - https://github.com/a...js/issues/11390.
Возможные варианты обхода:
- Уменьшить количество экземпляров используемых страниц (объектов WebPage).
- Вручную высвобождать память (для этого придется использовать нативный API phantomjs). Ghostdriver позволяет выполнять phantom скрипты.
- Перезапускать phantomjs во время выполнения.
Должен сказать, что у меня в некоторых тестах фантом выжирал гиг и падал минут через 5, на самом обычном сайте - из-за не очень аккуратной работы с инстансами страниц, которые создавались на каждый чих. Комбинация пунктов 1 и 3 помогла.
а каким образом я могу уменьшить количество экземпляров используемых страниц?
Отправлено 28 февраля 2014 - 06:48
Ответ - точно не знаю :). Через ghostdriver нельзя явно управлять созданием объектов WebPage, а в каком случае он использует старую/создает новую - это надо долго копаться в исходниках. Я использую гем PageObject, и опытным путем выяснил, что на создание каждого объекта PageObject ghostdriver инициализирует новую страницу. Если используете какую-то обертку, попробуйте это проверить.
Отправлено 28 февраля 2014 - 09:18
Фантом, всё-таки, не очень стабильная штука. Попробуйте на обычном хроме гонять. Чуть больше накладные расходы, но есть мнение, что там с памятью лучше
0 пользователей, 0 гостей, 0 анонимных