- Регистрация
- 04.11.2010
- Сообщения
- 2 382
- Благодарностей
- 917
- Баллы
- 113
Приветствую, статья будет серьезным материалом, включающем все моменты оптимизации. Начиная от архитектуры самого шаблона, о том в каких участках и почему можно отключать что-либо, как продумывать структуру, как перезагружать инстансы, где какую-гибкость лучше заложить.
И заканчивая настройками ZennoPoster'a и настройками самого ПК на котором происходит запуск.
В материале собраны советы участников нашего сообщества, раскрыты методы оптимизации которые упоминаются в справке, но не раскрываются во всех особенностях, + огромное количество опыта методом экспериментов.
Тему уже затрагивал участник форума CSS - http://zennolab.com/discussion/threads/bazovye-ponjatija-optimizacii-shablonov.12606/
Мы рассмотрим большее количество моментов и более детально.
Есть три области которые стоит оптимизировать для грамотного расхода ресурсов ПК для решения своих задач.
I. Шаблон
II. Настройки ZennoPoster
III. Настройки ПК
Они написаны в порядке приоритета, если шаблон грамотно не оптимизирован, оптимизация настроек ZennoPoster и самого ПК на котором происходит запуск, даст немногое по сравнению с потенциалом оптимизации самого шаблона, тоже самое для настроек Zenno относительно настроек ПК.
Некоторые(но немногие) участки информации которые я предоставлю, не были мной проверенны, ибо часть вещей сугубо индивидуальны, а некоторые возможные пункты оптимизации незначительны, и на мощных ПК (у меня мощный сервер) они не заметны при тестах и последствия их оптимизации не отследить. Если у кого-то будет опровергающая информация пишите в теме. Пусть это будет предметом дискуссии в данной статье, некоторую информацию брал исходя из утверждений других участников и отсутствия опровержений.
Инстанс - видимое окно "браузера", которое появляется при запуске потоков.
Принципы работы пожирания ресурсов ПК инстансом:
-Чем больше висит поток, тем он жрет больше ресурсов. Его нужно ребутить.
-Чем больше происходит отрисовки на странице, тем больше жрется процессор.
-Чем больше сама страница, тем больше жрется оперативки, а процессору тяжелей с ней работать (это к вопросу промотки околобескконечных страниц).
I. Оптимизация шаблона:
У шаблона есть настройки. Находятся тут:
Разберем настройки:
-Эмуляция ввода
Чем выше эмуляция, тем ниже скорость и наоборот.
-Не использовать браузер
Полностью отключает браузерную часть, т.е. мы не можем воздействовать на страницу путем воздействия на элементы страницы. Тут можно включать эту функцию, когда у нас работа идет на POST/GET запросах, базами данных или какими-то командными файлами, все те случаи когда нет работы с WEB-частью через браузер.
-Браузер без отображения содержимого
(как по мне очень крутая вещь, всегда когда написан и обкатан шаблон на 100% её применяю) она сохраняет загрузку всех элементов на странице, как бы мы и работали обычно с видимой частью инстанса, но не отображает. т.е. если мы развернем инстанс, то увидим лишь серый фон и надпись, что отображение отключено. Отключение отрисовки сэкономит нам ресурсы ПК.
-Выделенный процесс
Использует один инстанс на один base.exe, что это такое разберем ниже в рамках "Наcтройка ZennoPoster"
-Использовать Proxifier
это програма для проксифицирования сетевого трафика с машины. http://www.proxifier.com/
(сам не использую, но думаю её включение нагрузит шаблон дополнительно ощутимо).
-Загружать картинки
Отключение картинок заметно ускоряет работу шаблона.
-Загружать объекты (Flash, Silverlight, Java)
Как правило можем смело отключать. С флешем ZennoPoster полноценно не работает. Иногда бывает, что какая-то загрузка файлов происходит через флеш или воспроизведение плеера какого-то.
-Выполнять JavaScript
На современных сайтах он как правило необходим, но его отключение действительно оптимизирует работу. Многие процессы через него происходят. Частенько он может отсутствовать на мобильной версии сайтов, которая рассчитана на старые телефоны, у которых нет браузера с поддержкой ява скриптов. Или же отключать хотя бы на тех страницах где он не нужен нам. Разберем это ниже.
-Очищать Cache
Кэш (от англ. cache – кладовая, тайник) или кэш-память – это область памяти, предназначенная для временного хранения информации. Доступ к информации в кэше происходит быстрее, чем выборка данных из более медленной основной памяти или из интернета
Я обычно очищаю, но задачи могут быть разные. Иногда у Вас не будет необходимости его чистить и смело можете его сохранять для оптимизации.
Отсутствие очищение кеша, помогает сэкономить расход канала, но у меня 100-мегабитный канал не разу не забивался даже на 500 потоках через GET/POST запросы и на 200 потоках через веб-интерфейс.
Некоторые из выше перечисленных пунктов бывает необходимо всё же включать во время работы на некоторых страницах (участках). Например страницах загрузки чего-либо на сайт (картинки, файлы). Для этого есть шаг "настройки браузера".
Остановлюсь на не разобранных моментах:
-Загрузка фреймов
Фрейм (от англ. frame — рамка) — отдельный, законченный HTML-документ, который вместе с другими HTML-документами может быть отображён в окне браузера.
При помощи фреймов в том числе подгружаются на сайт участки с других сайтов.
-Уровень эмуляции
Чем выше уровень эмуляции, тем ниже скорость, тем медленей выполняются наши задачи.
-Состояние занятости
Игнорировать подгрузку перечисленных элементов.
-Эмуляция задержек
Чем выше уровень эмуляции, тем ниже скорость, тем медленней выполняются наши задачи.
-Перезагрузить инстанс
В данном случае слетает профиль с куками, т.е. место положении при использовании закладывайте исходя из этого. Про инстанс поговорим ниже в "Настройках ZennoPoster"
-Загрузка стилей
Тут имеются ввиду CSS стили.
Что такое CSS можно почитать тут https://ru.wikipedia.org/wiki/CSS
Самоучитель по CSS можно посмотреть тут http://htmlbook.ru/samcss
Если вкратце, это часть кода которая отвечает за визуальное оформление HTML-элеменотв, т.е. цвет полей, цвет ссылок, рамки, шрифт и т.д.
И вот это визуально оформление можно отключить, теоретически чем меньше подгружать/отображать инстансу, тем меньше меньше тратится на него ресурсов. Но при отключении CSS я ярко выраженной разницы у себя не увидел., но в оптимизации часто действует принцип "С мира по нитке - голому рубаха".
Также при отключении css после написания шаблона нужно быть аккуратным, ибо например когда мы в шаблоне проверяем наличие текста на странице, то часто этот текст изначально есть на странице, но скрыт и после например чего либо, меняется css свойство и он становится виден, то при отключении css этот текст может быть виден всегда. Будьте внимательны!
-Реклама
Тут думаю всё понятно. Отключаем лишнее.
-Media (Video/Audio)
Включение/отключение видео и аудио на странице, ради сохранения ресурсов ПК.
Принцип оптимизации настроек шаба - отключай все лишнее, включай лишь при необходимости.
Другие возможности оптимизации внутри шаблона:
Тайм-аут
Это означает сколько мы позволим странице максимум прогружаться не приступая к её обработке. Бывает на сайтах какой-нибудь неосновной ява скрипт подвисает и не может подгрузиться, а пока ZennoPoster не определит, что страница прогрузилась, ZennoPoster не перейдет к выполнению следующего шага. Т.е. этот шаг помечает страницу как прогруженную и начинает работать с её содержимым. И страница вероятно успешно обработается.
Также часто бывает при работе через прокси, что просто крайней медленная прогрузка, и для нас может быть выгодно остановить загрузку, споткнуться на непрогрузке элемента и завершить работу с этим прокси.
Шаг оповещения
Данный шаг жрет много ресурсов, если выводить оповещение на экран. Если только в лог, то все ок.
Профили
Полезная вещь. Принцип в том, что Вы сохраняете куки и ряд другой информации от вашего профиля в файл. В следующий раз можете подгрузить сохраненный профиль и после перехода на сайт Вы уже будете на нем авторизированы.
Благодаря этому Вам ненужно будет делать переход на страницу авторизации и авторизироваться. Этим сокращается время выполнения проекта на пару веб-переходов.
Мобильная версия сайта
У ряда сайтов есть мобильные версии. Они облегченные, что экономит наше время на прогрузку, и бывают сделаны без ява скриптов.
Часто мобильная версия находится на поддомене, но также часто для её корректного мобильного отображения нужно переключиться на мобильный юзер-агент.
Юзер агент можно поменять тут:
Или подставить тут уже готовый:
Эмуляция ввода
При работе над элементами с типом действия set, есть возможность менять скорость ввода текста. При моментальной вставке в поля, бывает ругается сайт на незаполненность поля после попытки отправить данные сайту, ибо при моментальной вставке ява скрипт не успевает подхватить изменение поля, чтобы исключить эту ошибку бывает достаточно после вставки сделать на поле
rise->click или rise->onkeyup
Клик по картинке
Когда не удается найти верные признаки или по какой-либо другой причине, есть возможность кликнуть по любому участку визуально, обработав его как картинку.
Этот метод воздействия крайне ресурсо-затратный. Имейте ввиду.
Работа с файлами
Старайтесь как можно реже использовать списки и таблицы в режиме "без синхронизации с файлом". Если используете, то лучше используйте список, ибо он легче таблицы для обработки системой.
Используйте асинхронное распознование каптчи
Тоже сэкономит Вам время. Для этого просто отправляете каптчу на распознание в первую очередь действий необходимых на странице.
Циклы
Часто бывает необходимо корректировать время работы шаблона для полноценного оптимизированного расхода ресурсов ПК на котором происходит запуск. Чем дольше работает шаблон тем он больше жрет оперативки, а чем чаще ребутится инстанс, тем больше жрется процессор.
Время выполнения без простоев регулириуется циклом внутри шаба, который контролирует количество выполнений внутренних за одно системное выполнение.
Для это создается регулируемый цикл внутри шаблона. Создаются входные настройки:
И сам цикл.
Т.е. сейчас за одно выполнение в настройках Zenno, благодаря циклу выполнится шаблон несколько раз. Подробней настройку этого цикла мы рассмотрим чуть позже.
Создаем входные настройки для удобства регулирования количества циклов:
Схематичное отображение цикла:
II. Настройки ZennoPoster:
Начнем с того, что при запуске потоков в ZennoPoster вы в диспетчере задач увидите запущенные base.exe, это процессы которые занимаются непосредственно запуском инстансов.
Инстанс - это как раз и есть наш запущенный поток с веб содержимым.
Каждый base.exe (в народе более известен термин "база") управляет определенным количеством инстансов. Каким именно количеством он будет управлять - настраивается (рассмотрим ниже).
Чем больше инстансов на базу тем экономнее расход ресурсов, но тем медленнее выполняются задачи внутри этой базы. А именно одна база, это некий управляющий процесс, т.е. если например на базу приходится 5 инстансов, то внутри этих инстансов только с одним инстансом может вестись работа, а как начинается момент какой-то прогрузки или ожидания, то в этот момент происходит переключение на другой инстанс внутри базы и идет работа с ним.
т.е. предположим у нас запущенно 15 потоков(15инстансов), по 5 потоков на базу, это как если бы было 3 человека, и у каждого открыто по 5 окон браузера, т.е. человек может что-то делать одновременно только в одном окне, но относительно других людей (баз) он это делает параллельно.
И повторюсь. Чем больше работает инстанс, тем больше base.exe от которого этот инстанс жрет оперативки. т.е. если у нас какой-то шаблон будет иметь внутри бесконечный цикл, даже самый нетрудо-затратный, то он со временем без перезапуска сожрет все ресурсы ПК.
А запуск инстанса процесс процессоро-затратный. Т.е. ребутить после каждого выполнения шаба может быть тяжело для процессора.
Вот среди этого все всего Вам и нужно быть найти свой инь и янь.
Мы еще поподробней рассмотрим это ниже.
Также запомним еще одну вещь, что инстансы растут последовательно, а не параллельно. Им нужно время на запуск. (Начиная с версии ZennoPoster 5.11.3.0 значительно увеличенна скорость запуска инстансов, растут не мгновенно, но очень быстро.) Если шаблон будет обрабатываться слишком быстро, они могут не успевать вырасти до необходимого значения. Например шаблон состоит из взятия строки из списка, обработки строки регуляркой и сохранение в соседний список, то такой шаблон будет выполнятся быстрее, чем разгоняются инстансы, для этого как раз нам пригодиться вложенный настраиваемый цикл о котором мы говорили немногим выше. Цикл при настройке на несколько выполнений увеличит время выполнения шаблона и этим даст время на рост количества инстансов. Если у шаблона в настройках включена галка - "не использовать браузер", то инстансы все стартуют влет. Буквально инстансы будут подыматься за пару секунд.
Про настройки самого ZennoPoster все достаточно доходчиво написано по этой ссылке http://zennolab.com/wiki/ru:general-settings, я лишь дополню некоторые из них своими рекомендациями.
Разберем настройки ZennoPoster - вкладка - потоки:
Количество потоков в процессе = количество потоков на базу
Максимальное количество потоков - максимальное значение ставьте свое желаемое. Оно ни на что не влияет. На рекомендуемое рекомендую не обращать внимания, ибо то количество потоков которое потянет ваш ПК очень зависит от шаблона,а не от ПК)
Разберем настройки ZennoPoster - вкладка - Инстансы:
Таймауты - время которое дает программа для каких-то действий, т.е. уменьшение приведет к ошибкам.
Иногда у людей слабые компьютеры и инстанс загружается не 3 секунды, а например 30 секунд под нагрузкой, вот тогда следует увеличить настройки.
Здесь настройки таймаутов не для оптимизации работы Zenno, а для починки и диагностики проблем, когда что-то не работает.
Дополню для большего понимания про "Таймаут выполнения команды в инстансе" , одно время у ZennoPoster был баг, что потоки зависали на каком-либо действии намертво и бесконечно, после этого был выпущен хотфикс, который позволял идти дальше с помощью это костыля, если действие за определенный срок не выполнилось. Сейчас этот функционал в целом не нужен и роли значительной не играет.
Но тут есть 3 ползунка которые сильно влияют на оптимизацию, это:
-Минимальное кол-во заданий до перезагрузки
-Выполненных заданий до принудительной перезагрузки
-Максимальное кол-во памяти
Чем больше тут указанны значения, тем дольше будут висеть инстансы, из-за этого будет потребляться больше оперативной памяти и меньше процессора.
У меня эти ползунки на максимуме, т.к. у меня при работе с шаблонами при всей оптимизации всегда первым забивается процессор, и остается излишек оперативки. Ползунки на максимуме позволяют реже ребутить инстансы и этим частично балансируют соотношение процессор/оперативная память.
Последнее, что мы разберем в настройке самого ZennoPoster, это настройка проверки проксей, ибо она тоже поджирает ресурсы:
Основная настройка которая нас тут может заинтересовать, "число потоков на процесс":
Это число потоков, используемое в процессе проверки прокси, чем оно больше тем сильнее поджирается процессор, но если прокси много, а количество потоков не велико, то тем дольше они будут проверятся.
После ряда тестов, экспериментов и абуз от хостера, мною было принято решение в настройках источника прокси, выставить "Считать все прокси живыми", и пореже их подгружать с источника.
Это позволит нам сберечь ресурсы ПК, но все зависит от ваших прокси! Возможно Вам будут необходимы проверки, но не делайте лишние и часто. В некоторых шаблонах с прокси перед переходом на страницу я делаю GET-запрос к нужной странице и смотрю нормальный ли ответ, если ок, то делаю переход через веб. Тоже сокращает время ложной работы значительно, без проверки прокси через чекер.
III. Оптимизация ПК:
ZennoPoster я запускаю на серваке 64битной серверной виндой, 32гб оперативки и процессором 8ми ядерным intel i7 на 3.4GHz, но даже на таком компе я в шаблонах для регулярного использования оптимизирую все по максимуму.
1. Установить серверную винду. Она сама по себе прооптимизирована для запуска софта мощно пожирающего реурсы.
2. Обновить все драйвера
3. Панели управления -> раздел "Электропитание" -> Максимальная производительность
После данной настройки ПК начинает лучше работать, но при этом быстрее нагреваться. Из-за этого шум куллера значительно возрастает, что может создавать дискомфорт во время работы.
Также эта настройка решает проблему ограничения потоков на мощных тачках (когда примерно под 500 потоков и есть свободные ресурсы) при увеличении потоков далее, скорость выполнения начинает падать вместо того чтобы расти .
4. Пуск -> Мой компьютер -> Правая кнопка мыши -> Свойства -> раздел "Дополнительные параметры системы" -> В открывшемся окне, возле пункта быстродействие нажать на пункт "Параметры" -> Обеспечить наилучшее быстродействие
5. Для получения большей производительности можно использовать "Razer Game Booster". В интернете полно видео, как правильно все сделать.
6. Установить "Windows XP Game Edition". Если еще применить предыдущие пункты оптимизации - будет отлично. Игровая XP ОС ест около 200-300 мб озу, остальное пускается на ZennoPoster.
7. Использовать SSD диск
(Большинство советов от участника atheroth)
Прочитайте также официальную справку: http://zennolab.com/wiki/ru:project-optimization#процессор
Но мои замеры отличались от информации в данном пункте официальной справки:
Возможно мой тест в чем-то был не чист или же это некоторые особенности настройки так себя проявили.
При перезагруженности системы, ZennoPoster не будет находить то, что находится на странице, и будет валиться ошибками на ровном месте.
По моим обкаткам, вот это ок и можно даже сильнее нагрузить процесс:
А вот такое уже на грани дозволенного. Вообще прямая траектория граффика на 100% нагрузки не желательна. Будьте готовы снижать потоки, но потоки могут чуть утрястись и начнут более равномерно использовать ресурсы:
А каковы Ваши наблюдения и знания в оптимизации работы ZennoPoster?
На этом в принципе всё. Дополняйте и исправляйте, если я указал что-то неточно. Статья будет дополнена вашей информацией.
И заканчивая настройками ZennoPoster'a и настройками самого ПК на котором происходит запуск.
В материале собраны советы участников нашего сообщества, раскрыты методы оптимизации которые упоминаются в справке, но не раскрываются во всех особенностях, + огромное количество опыта методом экспериментов.
Тему уже затрагивал участник форума CSS - http://zennolab.com/discussion/threads/bazovye-ponjatija-optimizacii-shablonov.12606/
Мы рассмотрим большее количество моментов и более детально.
Есть три области которые стоит оптимизировать для грамотного расхода ресурсов ПК для решения своих задач.
I. Шаблон
II. Настройки ZennoPoster
III. Настройки ПК
Они написаны в порядке приоритета, если шаблон грамотно не оптимизирован, оптимизация настроек ZennoPoster и самого ПК на котором происходит запуск, даст немногое по сравнению с потенциалом оптимизации самого шаблона, тоже самое для настроек Zenno относительно настроек ПК.
Некоторые(но немногие) участки информации которые я предоставлю, не были мной проверенны, ибо часть вещей сугубо индивидуальны, а некоторые возможные пункты оптимизации незначительны, и на мощных ПК (у меня мощный сервер) они не заметны при тестах и последствия их оптимизации не отследить. Если у кого-то будет опровергающая информация пишите в теме. Пусть это будет предметом дискуссии в данной статье, некоторую информацию брал исходя из утверждений других участников и отсутствия опровержений.
Инстанс - видимое окно "браузера", которое появляется при запуске потоков.
Принципы работы пожирания ресурсов ПК инстансом:
-Чем больше висит поток, тем он жрет больше ресурсов. Его нужно ребутить.
-Чем больше происходит отрисовки на странице, тем больше жрется процессор.
-Чем больше сама страница, тем больше жрется оперативки, а процессору тяжелей с ней работать (это к вопросу промотки околобескконечных страниц).
I. Оптимизация шаблона:
У шаблона есть настройки. Находятся тут:
Разберем настройки:
-Эмуляция ввода
Чем выше эмуляция, тем ниже скорость и наоборот.
-Не использовать браузер
Полностью отключает браузерную часть, т.е. мы не можем воздействовать на страницу путем воздействия на элементы страницы. Тут можно включать эту функцию, когда у нас работа идет на POST/GET запросах, базами данных или какими-то командными файлами, все те случаи когда нет работы с WEB-частью через браузер.
-Браузер без отображения содержимого
(как по мне очень крутая вещь, всегда когда написан и обкатан шаблон на 100% её применяю) она сохраняет загрузку всех элементов на странице, как бы мы и работали обычно с видимой частью инстанса, но не отображает. т.е. если мы развернем инстанс, то увидим лишь серый фон и надпись, что отображение отключено. Отключение отрисовки сэкономит нам ресурсы ПК.
-Выделенный процесс
Использует один инстанс на один base.exe, что это такое разберем ниже в рамках "Наcтройка ZennoPoster"
-Использовать Proxifier
это програма для проксифицирования сетевого трафика с машины. http://www.proxifier.com/
(сам не использую, но думаю её включение нагрузит шаблон дополнительно ощутимо).
-Загружать картинки
Отключение картинок заметно ускоряет работу шаблона.
-Загружать объекты (Flash, Silverlight, Java)
Как правило можем смело отключать. С флешем ZennoPoster полноценно не работает. Иногда бывает, что какая-то загрузка файлов происходит через флеш или воспроизведение плеера какого-то.
-Выполнять JavaScript
На современных сайтах он как правило необходим, но его отключение действительно оптимизирует работу. Многие процессы через него происходят. Частенько он может отсутствовать на мобильной версии сайтов, которая рассчитана на старые телефоны, у которых нет браузера с поддержкой ява скриптов. Или же отключать хотя бы на тех страницах где он не нужен нам. Разберем это ниже.
-Очищать Cache
Кэш (от англ. cache – кладовая, тайник) или кэш-память – это область памяти, предназначенная для временного хранения информации. Доступ к информации в кэше происходит быстрее, чем выборка данных из более медленной основной памяти или из интернета
Я обычно очищаю, но задачи могут быть разные. Иногда у Вас не будет необходимости его чистить и смело можете его сохранять для оптимизации.
Отсутствие очищение кеша, помогает сэкономить расход канала, но у меня 100-мегабитный канал не разу не забивался даже на 500 потоках через GET/POST запросы и на 200 потоках через веб-интерфейс.
Некоторые из выше перечисленных пунктов бывает необходимо всё же включать во время работы на некоторых страницах (участках). Например страницах загрузки чего-либо на сайт (картинки, файлы). Для этого есть шаг "настройки браузера".
Остановлюсь на не разобранных моментах:
-Загрузка фреймов
Фрейм (от англ. frame — рамка) — отдельный, законченный HTML-документ, который вместе с другими HTML-документами может быть отображён в окне браузера.
При помощи фреймов в том числе подгружаются на сайт участки с других сайтов.
-Уровень эмуляции
Чем выше уровень эмуляции, тем ниже скорость, тем медленей выполняются наши задачи.
-Состояние занятости
Игнорировать подгрузку перечисленных элементов.
-Эмуляция задержек
Чем выше уровень эмуляции, тем ниже скорость, тем медленней выполняются наши задачи.
-Перезагрузить инстанс
В данном случае слетает профиль с куками, т.е. место положении при использовании закладывайте исходя из этого. Про инстанс поговорим ниже в "Настройках ZennoPoster"
-Загрузка стилей
Тут имеются ввиду CSS стили.
Что такое CSS можно почитать тут https://ru.wikipedia.org/wiki/CSS
Самоучитель по CSS можно посмотреть тут http://htmlbook.ru/samcss
Если вкратце, это часть кода которая отвечает за визуальное оформление HTML-элеменотв, т.е. цвет полей, цвет ссылок, рамки, шрифт и т.д.
И вот это визуально оформление можно отключить, теоретически чем меньше подгружать/отображать инстансу, тем меньше меньше тратится на него ресурсов. Но при отключении CSS я ярко выраженной разницы у себя не увидел., но в оптимизации часто действует принцип "С мира по нитке - голому рубаха".
Также при отключении css после написания шаблона нужно быть аккуратным, ибо например когда мы в шаблоне проверяем наличие текста на странице, то часто этот текст изначально есть на странице, но скрыт и после например чего либо, меняется css свойство и он становится виден, то при отключении css этот текст может быть виден всегда. Будьте внимательны!
-Реклама
Тут думаю всё понятно. Отключаем лишнее.
-Media (Video/Audio)
Включение/отключение видео и аудио на странице, ради сохранения ресурсов ПК.
Принцип оптимизации настроек шаба - отключай все лишнее, включай лишь при необходимости.
Другие возможности оптимизации внутри шаблона:
Тайм-аут
Это означает сколько мы позволим странице максимум прогружаться не приступая к её обработке. Бывает на сайтах какой-нибудь неосновной ява скрипт подвисает и не может подгрузиться, а пока ZennoPoster не определит, что страница прогрузилась, ZennoPoster не перейдет к выполнению следующего шага. Т.е. этот шаг помечает страницу как прогруженную и начинает работать с её содержимым. И страница вероятно успешно обработается.
Также часто бывает при работе через прокси, что просто крайней медленная прогрузка, и для нас может быть выгодно остановить загрузку, споткнуться на непрогрузке элемента и завершить работу с этим прокси.
Шаг оповещения
Данный шаг жрет много ресурсов, если выводить оповещение на экран. Если только в лог, то все ок.
Профили
Полезная вещь. Принцип в том, что Вы сохраняете куки и ряд другой информации от вашего профиля в файл. В следующий раз можете подгрузить сохраненный профиль и после перехода на сайт Вы уже будете на нем авторизированы.
Благодаря этому Вам ненужно будет делать переход на страницу авторизации и авторизироваться. Этим сокращается время выполнения проекта на пару веб-переходов.
Мобильная версия сайта
У ряда сайтов есть мобильные версии. Они облегченные, что экономит наше время на прогрузку, и бывают сделаны без ява скриптов.
Часто мобильная версия находится на поддомене, но также часто для её корректного мобильного отображения нужно переключиться на мобильный юзер-агент.
Юзер агент можно поменять тут:
Или подставить тут уже готовый:
Эмуляция ввода
При работе над элементами с типом действия set, есть возможность менять скорость ввода текста. При моментальной вставке в поля, бывает ругается сайт на незаполненность поля после попытки отправить данные сайту, ибо при моментальной вставке ява скрипт не успевает подхватить изменение поля, чтобы исключить эту ошибку бывает достаточно после вставки сделать на поле
rise->click или rise->onkeyup
Клик по картинке
Когда не удается найти верные признаки или по какой-либо другой причине, есть возможность кликнуть по любому участку визуально, обработав его как картинку.
Этот метод воздействия крайне ресурсо-затратный. Имейте ввиду.
Работа с файлами
Старайтесь как можно реже использовать списки и таблицы в режиме "без синхронизации с файлом". Если используете, то лучше используйте список, ибо он легче таблицы для обработки системой.
Используйте асинхронное распознование каптчи
Тоже сэкономит Вам время. Для этого просто отправляете каптчу на распознание в первую очередь действий необходимых на странице.
Циклы
Часто бывает необходимо корректировать время работы шаблона для полноценного оптимизированного расхода ресурсов ПК на котором происходит запуск. Чем дольше работает шаблон тем он больше жрет оперативки, а чем чаще ребутится инстанс, тем больше жрется процессор.
Время выполнения без простоев регулириуется циклом внутри шаба, который контролирует количество выполнений внутренних за одно системное выполнение.
Для это создается регулируемый цикл внутри шаблона. Создаются входные настройки:
И сам цикл.
Т.е. сейчас за одно выполнение в настройках Zenno, благодаря циклу выполнится шаблон несколько раз. Подробней настройку этого цикла мы рассмотрим чуть позже.
Создаем входные настройки для удобства регулирования количества циклов:
Схематичное отображение цикла:
II. Настройки ZennoPoster:
Начнем с того, что при запуске потоков в ZennoPoster вы в диспетчере задач увидите запущенные base.exe, это процессы которые занимаются непосредственно запуском инстансов.
Инстанс - это как раз и есть наш запущенный поток с веб содержимым.
Каждый base.exe (в народе более известен термин "база") управляет определенным количеством инстансов. Каким именно количеством он будет управлять - настраивается (рассмотрим ниже).
Чем больше инстансов на базу тем экономнее расход ресурсов, но тем медленнее выполняются задачи внутри этой базы. А именно одна база, это некий управляющий процесс, т.е. если например на базу приходится 5 инстансов, то внутри этих инстансов только с одним инстансом может вестись работа, а как начинается момент какой-то прогрузки или ожидания, то в этот момент происходит переключение на другой инстанс внутри базы и идет работа с ним.
т.е. предположим у нас запущенно 15 потоков(15инстансов), по 5 потоков на базу, это как если бы было 3 человека, и у каждого открыто по 5 окон браузера, т.е. человек может что-то делать одновременно только в одном окне, но относительно других людей (баз) он это делает параллельно.
И повторюсь. Чем больше работает инстанс, тем больше base.exe от которого этот инстанс жрет оперативки. т.е. если у нас какой-то шаблон будет иметь внутри бесконечный цикл, даже самый нетрудо-затратный, то он со временем без перезапуска сожрет все ресурсы ПК.
А запуск инстанса процесс процессоро-затратный. Т.е. ребутить после каждого выполнения шаба может быть тяжело для процессора.
Вот среди этого все всего Вам и нужно быть найти свой инь и янь.
Мы еще поподробней рассмотрим это ниже.
Также запомним еще одну вещь, что инстансы растут последовательно, а не параллельно. Им нужно время на запуск. (Начиная с версии ZennoPoster 5.11.3.0 значительно увеличенна скорость запуска инстансов, растут не мгновенно, но очень быстро.) Если шаблон будет обрабатываться слишком быстро, они могут не успевать вырасти до необходимого значения. Например шаблон состоит из взятия строки из списка, обработки строки регуляркой и сохранение в соседний список, то такой шаблон будет выполнятся быстрее, чем разгоняются инстансы, для этого как раз нам пригодиться вложенный настраиваемый цикл о котором мы говорили немногим выше. Цикл при настройке на несколько выполнений увеличит время выполнения шаблона и этим даст время на рост количества инстансов. Если у шаблона в настройках включена галка - "не использовать браузер", то инстансы все стартуют влет. Буквально инстансы будут подыматься за пару секунд.
Про настройки самого ZennoPoster все достаточно доходчиво написано по этой ссылке http://zennolab.com/wiki/ru:general-settings, я лишь дополню некоторые из них своими рекомендациями.
Разберем настройки ZennoPoster - вкладка - потоки:
Количество потоков в процессе = количество потоков на базу
Максимальное количество потоков - максимальное значение ставьте свое желаемое. Оно ни на что не влияет. На рекомендуемое рекомендую не обращать внимания, ибо то количество потоков которое потянет ваш ПК очень зависит от шаблона,а не от ПК)
Разберем настройки ZennoPoster - вкладка - Инстансы:
Тайм аут загрузки инстанса - время, которое затратит ZennoPoster на ожидание загрузки инстанса.
Таймаут подготовки инстанса - время, которое затратится на инициализацию каждой вкладки, т.е. фактически - задержка перед каждым следующим выполнением шаблонна.
Таймаут загрузки базы - время, отведенное для запуска нового потока в рамках запущенного процесса.
Таймаут выполнения команды в инстасе - время ожидания выполнения какой-либо команды в инстансе (любого экшена).
Таймаут инициализации объектов - время, отведенное для дозагрузки web-страницы, иногда требуется для прогрузки некоторых элементов (например капчи). Иногда при неполной загрузке страницы выдается сообщение «не найден html-элемент». В таком случае можно попробовать увеличить этот параметр, но помните, его увеличение ведет к увеличению времени выполнения шаблонна.
Минимальное кол-во заданий до перезагрузки - пока не выполнится данное количество заданий, инстанс не перезагрузится.
Выполненных заданий до принудительной перезагрузки - количество заданий, после которых инстанс обязательно перезагрузится (независимо от успешности их выполнения).
Максимальное кол-во памяти - максимальный объем памяти, используемый инстансом в работе, чтобы держать базы в резерве.
Держать баз в резерве - регулирует кол-во баз в неактивном состоянии, что позволяет экономить время запуска баз.
Время жизни базы - время жизни базы в неактивном состоянии.
Таймауты - время которое дает программа для каких-то действий, т.е. уменьшение приведет к ошибкам.
Иногда у людей слабые компьютеры и инстанс загружается не 3 секунды, а например 30 секунд под нагрузкой, вот тогда следует увеличить настройки.
Здесь настройки таймаутов не для оптимизации работы Zenno, а для починки и диагностики проблем, когда что-то не работает.
Дополню для большего понимания про "Таймаут выполнения команды в инстансе" , одно время у ZennoPoster был баг, что потоки зависали на каком-либо действии намертво и бесконечно, после этого был выпущен хотфикс, который позволял идти дальше с помощью это костыля, если действие за определенный срок не выполнилось. Сейчас этот функционал в целом не нужен и роли значительной не играет.
Но тут есть 3 ползунка которые сильно влияют на оптимизацию, это:
-Минимальное кол-во заданий до перезагрузки
-Выполненных заданий до принудительной перезагрузки
-Максимальное кол-во памяти
Чем больше тут указанны значения, тем дольше будут висеть инстансы, из-за этого будет потребляться больше оперативной памяти и меньше процессора.
У меня эти ползунки на максимуме, т.к. у меня при работе с шаблонами при всей оптимизации всегда первым забивается процессор, и остается излишек оперативки. Ползунки на максимуме позволяют реже ребутить инстансы и этим частично балансируют соотношение процессор/оперативная память.
Последнее, что мы разберем в настройке самого ZennoPoster, это настройка проверки проксей, ибо она тоже поджирает ресурсы:
Основная настройка которая нас тут может заинтересовать, "число потоков на процесс":
Это число потоков, используемое в процессе проверки прокси, чем оно больше тем сильнее поджирается процессор, но если прокси много, а количество потоков не велико, то тем дольше они будут проверятся.
После ряда тестов, экспериментов и абуз от хостера, мною было принято решение в настройках источника прокси, выставить "Считать все прокси живыми", и пореже их подгружать с источника.
Это позволит нам сберечь ресурсы ПК, но все зависит от ваших прокси! Возможно Вам будут необходимы проверки, но не делайте лишние и часто. В некоторых шаблонах с прокси перед переходом на страницу я делаю GET-запрос к нужной странице и смотрю нормальный ли ответ, если ок, то делаю переход через веб. Тоже сокращает время ложной работы значительно, без проверки прокси через чекер.
III. Оптимизация ПК:
ZennoPoster я запускаю на серваке 64битной серверной виндой, 32гб оперативки и процессором 8ми ядерным intel i7 на 3.4GHz, но даже на таком компе я в шаблонах для регулярного использования оптимизирую все по максимуму.
1. Установить серверную винду. Она сама по себе прооптимизирована для запуска софта мощно пожирающего реурсы.
2. Обновить все драйвера
3. Панели управления -> раздел "Электропитание" -> Максимальная производительность
После данной настройки ПК начинает лучше работать, но при этом быстрее нагреваться. Из-за этого шум куллера значительно возрастает, что может создавать дискомфорт во время работы.
Также эта настройка решает проблему ограничения потоков на мощных тачках (когда примерно под 500 потоков и есть свободные ресурсы) при увеличении потоков далее, скорость выполнения начинает падать вместо того чтобы расти .
4. Пуск -> Мой компьютер -> Правая кнопка мыши -> Свойства -> раздел "Дополнительные параметры системы" -> В открывшемся окне, возле пункта быстродействие нажать на пункт "Параметры" -> Обеспечить наилучшее быстродействие
5. Для получения большей производительности можно использовать "Razer Game Booster". В интернете полно видео, как правильно все сделать.
6. Установить "Windows XP Game Edition". Если еще применить предыдущие пункты оптимизации - будет отлично. Игровая XP ОС ест около 200-300 мб озу, остальное пускается на ZennoPoster.
7. Использовать SSD диск
(Большинство советов от участника atheroth)
Прочитайте также официальную справку: http://zennolab.com/wiki/ru:project-optimization#процессор
Но мои замеры отличались от информации в данном пункте официальной справки:
>>>Если процессор доходил до 100%, то у меня заметно замедлялась работа. Для себя сделал Вывод, что стоит немного оставлять свободы процессору.Нужно учесть один нюанс: расход процессора можно немного превысить, т.е. если у вас он загружен на 100% увеличение потоков на 10-15% практически ничего не изменит, а главное, не ухудшит. Просто потоки будут ждать некоторое время освобождения этих ресурсов.
Оперативная память, наоборот, не должна забиваться полностью, всегда лучше оставлять 10-30%. Если она кончится, это может привести к падению ZennoPoster и всех остальных программ на вашем компьютере
Возможно мой тест в чем-то был не чист или же это некоторые особенности настройки так себя проявили.
При перезагруженности системы, ZennoPoster не будет находить то, что находится на странице, и будет валиться ошибками на ровном месте.
По моим обкаткам, вот это ок и можно даже сильнее нагрузить процесс:
А вот такое уже на грани дозволенного. Вообще прямая траектория граффика на 100% нагрузки не желательна. Будьте готовы снижать потоки, но потоки могут чуть утрястись и начнут более равномерно использовать ресурсы:
А каковы Ваши наблюдения и знания в оптимизации работы ZennoPoster?
На этом в принципе всё. Дополняйте и исправляйте, если я указал что-то неточно. Статья будет дополнена вашей информацией.
- Тема статьи
- Другое
- Номер конкурса статей
- Пятый конкурс статей
Для запуска проектов требуется программа ZennoPoster или ZennoDroid.
Это основное приложение, предназначенное для выполнения автоматизированных шаблонов действий (ботов).
Подробнее...
Для того чтобы запустить шаблон, откройте нужную программу. Нажмите кнопку «Добавить», и выберите файл проекта, который хотите запустить.
Подробнее о том, где и как выполняется проект.
Последнее редактирование: