Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

ZennoPoster - многопоточная программа и в каждом потоке обрабатывает много информации, требуя при этом значительных ресурсов компьютера. Эта статья поможет Вам настроить программу под Ваш компьютер, позволив использовать его ресурсы максимально эффективно.

Время пользователя

Самый важный ресурс. Время процессора стоит дёшево, оперативная память - ещё дешевле. Единственное, что действительно важно - это Ваше личное время.

Создавая программу, мы в первую очередь экономили этот ресурс.

Оперативная память

Каждый поток в ZennoPoster представляет собой изолированный браузер со своими куками (около 13 видов), кэшем, прокси, User Agent и всеми другими данными, которые нужны для полной эмуляции пользователя.

...

  1. Сайт, с которым Вы работаете. Все сайты очень разные и отличаются потреблением оперативной памяти иногда на порядок. Таким образом, автоматизация одного сайта может работать в 100 потоков, а другого в 20 на одной и той же машине. Старайтесь отключать Flash, картинки и другие ресурсы, если они не нужны для работы с сайтом.

  2. Файлы. Файлы для ускорения работы хранятся в оперативной памяти (иначе будут проблемы с доступом к жёсткому диску). Если Вы для каждого потока используете свою копию файла (так происходит при использовании списков и таблиц без синхронизации с файлом) то, соответственно, каждый поток требует дополнительную оперативную память для хранения этого файла. Учитывайте, что таблицы в оперативной памяти занимают намного больше места, чем исходный файл на жёстком диске. Списки не такие требовательные как таблицы, тем не менее, тоже в оперативной памяти увеличиваются. Например, в оперативной памяти таблица на основе файла *.csv в 10 MB в 100 потоков без синхронизации с файлом, может занять 5 GB. Старайтесь не использовать списки и таблицы в режиме «без синхронизации» с файлом без необходимости.

  3. См пункт (2) в разделе «Процессор».

  4. Поиск по картинке. Эта фича тратит много оперативной памяти. Но очень полезна.

Процессор

Каждый поток в ZennoPoster строит DOM модель, рендерит картинку, выполняет JavaScript, обрабатывает события, обрабатывает анимацию и т.д. всё это требует ресурсов процессора. Также процессор нагружается при периодической перезагрузке инстансов. Есть несколько способов экономии процессора:

  1. Отключение обработки ненужных элементов: Flash, картинки, скрипты и всё что не нужно. Обратите внимание, если сайт с хорошей защитой, то это может повлиять на бан аккаунтов. Т.е. регистрация пройдёт, но созданный аккаунт вызовет подозрения и в дальнейшем может быть забанен.

  2. В настройках программы есть возможность регулирования количества потоков на одной базе. Увеличив этот параметр, Вы немного экономите память и процессор, но появляются дополнительные задержки при эмуляции мыши и клавиатуры. Про эмуляцию читайте дальше.

  3. IntelliSearch и эмуляция. IntelliSearch увеличивает расход ресурсов процессора (в 2-3 раза), но помогает быстрее создавать проекты. Использовать его или нет, решайте сами. Эмуляция мыши и клавиатуры тоже немного увеличивает расход процессора и создаёт эффект, описанный в (2). Но иногда без неё просто нельзя создать аккаунт. Также эмуляция при регистрации аккаунта понижает вероятность бана аккаунта в будущем при дальнейшем его использовании.

  4. Программное распознавание каптчи при использовании модулей из CapMonster тоже расходует процессор. Сколько времени одного ядра процессора нужно для распознавания каптчи написано в CapMonster при тестировании модуля. На самом деле, даже если Вы тратите 10 секунд ядра процессора (хотя такого не бывает, обычно это меньше четверти секунды) на распознавание каптчи, это всё равно дешевле, чем отправлять каптчу в сервисы ручного распознавания.

  5. Поиск по картинке тратит и ресурсы процессора тоже. Но всё равно остаётся очень полезной фичей.

Время потока

Обратите внимание на этот параметр. Во время распознавания каптчи в сервисах ручного распознавания происходит простой проекта около 15 секунд (пока работники сервисов распознают вашу каптчу).

...

Аналогично с подтверждением регистрации по e-mail, когда поток ждёт письмо. В этом случае тоже происходит простой потока.

Интернет канал

Здесь всё просто. Вы открываете web-страницу - при этом она скачивается с сервера и все картинки, Flash, скрипты и т.д., которые есть на ней. Если Вы чистите кэш, то всё скачивается постоянно при работе проекта, если нет - то потребление этого ресурса сильно понижается.

...

Интернет канал может быть широким, тем не менее, ограничивать работу программы из-за малого количества разрешённых открытых соединений, о которых читайте далее.

Открытые соединения

Что это такое можно узнать у Google, а сколько таких соединений поддерживает Ваша сеть можно узнать в ZennoProxyChecker. В нём есть тест канала и его онлайн мониторинг.

...

Учитывайте, что ProxyChecker использует соединения. От 1 соединение на поток ProxyChecker.

В итоге

Каждый проект может требовать разное количество ресурсов. Один может использовать 15 MB оперативной памяти на поток, другой 1 GB, аналогично с ресурсами процессора - всё зависит от задач.

При создании программы мы в первую очередь экономили Ваше время, всё остальное легко настраивается и масштабируется.

Настройка количества потоков по умолчанию

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

...

Оперативная память, наоборот, не должна забиваться полностью, всегда лучше оставлять 10-30%. Если она кончится, это может привести к падению ZennoPoster и всех остальных программ на Вашем компьютере.

Скорость как у сокетов

Наши недобросовестные конкуренты (не будем показывать пальцем :) утверждают, что их программа может работать со скоростью сокетов, если отключить загрузку Flash, скриптов, картинок и т.д.

На самом деле это не так. Браузер никогда не будет работать со скоростью прямых http запросов. Прямые запросы работают в 50-100 раз быстрее. Вы можете убедиться в этом, запустив наш ZennoProxyChecker на выделенном сервере в 15000 потоков. При тестировании на серверах hetzner.de на 15000 потоках кончились свободные соединения, больше не поддерживает их сетевое оборудование, причём процессора и оперативной памяти легко хватило бы и на 50000.