Настройка Mozilla Firefox на максимальное быстродействие. Создание профилей Firefox для iMacros.

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

Обычный ненастроенный Firefox за 24 часа работы начинает потреблять по 1-2 Гб оперативной памяти. Это очень-очень много. Если у нас работает один бот — то это еще терпимо, но если у нас запущено сразу 20-30 ботов, то это становится критично. На моем компьютере 16 Гб оперативки, с настроенным Firefox я могу запускатьт 30-50 ботов спокойно на одной машине(процессор у меня мощный 4-х ядерный — Core i7 6700 3.4Ghz). Через сутки работы, каждый процесс жрет по 350-500 Мб памяти.

Создание профилей в Firefox 35

Если неохота разбираться — вы можете сразу скачать мою оптимизированную версию Firefox 35.

Для наших iMacros-ботов мы будем использовать не самую актуальную версию браузера Firefox. Она шустрее и менее прожорливая, чем последние версии этого браузера.
Небольшое примечание: до 39 версии FF присутствует 0-day уязвимость в библиотеке для чтения PDF-файлов — pdf.js.

  1. Качаем портабельную версию Firefox 35 отсюда — portableapps.com
  2. Давайте создадим папку под все наши ботоводные дела на диске с:(используйте именно диск c: — потом удобнее будет разворачивать ботофермы на VPS\VDS)
    C:\BOTS\
  3. Установите FireFox в папку C:\BOTS\ff35\
  4. Заходим в папку C:\BOTS\ff35\App\Firefox и удаляем следующие файлы:
    maintenanceservice.exe
    maintenanceservice_installer
    updater.exe
    updater.ini
    update-settings.ini
  5. Кликаем правой кнопкой мыши на файле firefox.exe и жмякаем «Создать ярлык». Открываем свойства созданного ярлыка и в поле «Объект» прописываем C:\BOTS\ff35\App\Firefox\firefox.exe -no-remote -profile "C:\BOTS\ff35\App\DefaultData\profiles\default" default — это будет имя нашего профиля. 
    Примечание: если без создания профилей запустить несколько окон Firefox и в каждом из них iMacros-скрипт — то скрипты одновременно не будут работать, поскольку будет один процес firefox.exe на все окна. Чтобы в каждом окне обрабатывать разные макросы мы используем флаг «-no-remote», на самом деле это небольшой хак, но он позволяет запускать для каждого профиля свой отдельный процесс.

  6. Заходим в папку C:\BOTS\ff35\App\DefaultData и создаем в ней папку profiles
  7. После запуска браузера через ярлык, у нас автоматом создастся папка C:\BOTS\ff35\App\DefaultData\profiles\default
  8. Теперь мы можем копировать эту папку default много раз, не забывая переименовывать, чтобы создать кучу профилей.

Настройка быстродействия Firefox 35

  1. Тыкаем по созданному ярлыку(обязательно по ярлыку, а не по файлу firefox.exe) и у нас открывается браузер — лезем сразу в Настройки(Options).
  2. Основные настройки:

  3. Во вкладке Безопасность(Privacy) выключаем отслеживание(tracking)
  4. В расширенных настройках, делайте, как на скринах:

  5. Скачиваем iMacros 8.9.7 — эта версия самая стабильная, в более новых версиях(9+) есть различные критичные проблемы для написания кода.
    Далее идем в расширения, там нажимаем на шестеренка и выбираем «Установку расширения из файла«. Также убираем галочку автоматического обновления расширений. Мы устанавливаем расширение из файла не просто так. Помимо версии для ботоводства, я также для веб-разработки использую последнюю версию Firefox и там стоит другая версия iMacros. У меня раньше были проблемы, что при обновлении новой версии на более новую, также обновлялись плагины и иногда это каким-то образом сказывалось и на портабельной версии. Теперь же все прекрасно.

  6. После установки iMacros — заходим в его настройки(либо жмем на «Опции» справа в списке расширений, либо в самом окошке iMacros)
    На вкладке General — обязательно убираем галочку Show Javascript during replay(Показывать JS во время воспроизведения)
    Также сделайте себе отдельную папку c:\BOTS\iMacros и пропишите ее во вкладке Path(Пути). Я не спроста прошу все-все складывать в одну папку, а не по умолчанию в «Мои Документы» — вам это в будущем сильно поможет при масштабировании, например, нужно будет быстро развернуть бота на VPS — вы просто скопируете всю папку и готово!


    Жмем «Apply»(«Применить»).

  7. Заходим about:addons — отключаем все-все плагины, должно быть вот так, у вас список плагинов может отличаться:

  8. Скачайте и установите расширение FasterFox. По умолчанию — там в настройках стоит максимальная производительность.
  9. Заходим в about:config и там добавляем ключ типа Boolean config.trim_on_minimize, присваиваем ему значение true.
  10. Там же меняем значения некоторых ключей:
    media.peerconnection.enabled = false  — так мы отключим WebRTC, через который можно спалить ваш настоящий ip, даже если вы используете прокси(проверить утечку)

Теперь только-только запущенный браузер с пустой вкладкой жрет  64 Мб, я добавил еще FireBug, это увеличило стартовый расход памяти на 10 Мб.
Вместо Firefox вы можете использовать браузер PaleMoon — он создан на том же движке, что и FireFox, и поддерживает те же расширения. О нем я напишу в другой раз. 

Если вам лень настраивать самому — вы можете Скачать настроенную и оптимизированную сборку Firefox 35(+iMacros+FireBug).

Жду ваши вопросы и дополнения в комментариях.

20 комментариев

      • При 10 открытых окон ff с одной вкладкой (яндекс) процессор не нагружается вообще (1-3%), но как только я открываю сайт, который мне нужен во всех окнах, проц.(i5,3.3 ghz) нагружается на полную. Я уже и с помощью адблока удалил всю анимацию с сайта, и оставил только то, что мне нужно — все равно 100% нагрузка. Все посторонние процессы отключил. Может есть какие то решения, возможно, эмуляция браузера или что-то в этом роде, чтобы увелиличть производительность, ибо уже при 10 открытых окнах нереально работать из-за нагруженности процессора?

        Ответить
    • Иван, а смысл? Palemoon и так оптимизирован и настройки из статьи под него тоже подходят, поскольку palemoon сделан на том же движке.

      Ответить
  1. слухай, я конечно мог что то не так сделать..
    настроил двух болтов — дефаулт и bot1 у меня
    запустил. через какое то время смотрю, синхронно два окна работают(((
    т.е. настройки не дали мне возможность запустить разных ботов.
    подскажи возможные причины.

    Ответить
  2. У меня ONLOGIN перестал работать , переодически глючит, может есть другой способ вводить пароли от прокси ?

    Ответить
  3. Есть идеи как реализовать чтобы каждый профиль брал свою переменную (например брал данные своего аккаунта из базы данных) , то есть запускался один скрипт на всех профилях, но номер профиля браузера соответствовал номеру аккаунта из базы?

    Ответить
    • kanabiozzz, у меня есть не только идея, но и реализация, можно брать данные из отдельных JSON-файлов или загружать настройки по ссылкам. Об этом чуть позже будет урок.

      Расписывать тему не буду пока, но в гугле можешь поискать инфу про получение аргументов командной строки из iMacros. Получив их, можно определить по какому пути подгрузился профиль — а там уже дело техники.

      Ответить
  4. могли бы стразу сделать чтоб по закрытию последней вкладки не закрывался about:config
    closeWindow

    browser.tabs.closeWindowWithLastTab

    переделать на false

    Ответить
  5. Что то не выходит скормить имакросу одну папку и для макросов, и для датасырцов, и для папки загрузки.

    Ответить
  6. Зачем использовать -no-remote -profile для создание папки с профилями и потом копировать папку defaul, если партабельной версии таким способом невозможно заставить одновремено работать есколько профилей.Допусти создал ярлык X:\ff35\FirefoxPortable.exe -no-remote -profile «X:\ff35\App\DefaultData\profiles\x1» и X:\ff35\FirefoxPortable.exe -no-remote -profile «X:\ff35\App\DefaultData\profiles\x2» запускаю первый потом второй и выскакивает сообщение что фаерфокс уже запущен.

    Ответить
    • onwaytar, Значит вы делаете что-то неправильно.Я подобным образом запускал 50 профилей, подобных сообщений не было и открывались разные профили.
      Кажется, понял.
      Вы запускает портабельную версию из лаунчера FirefoxPortable.exe. Его суть — показать фирменный сплеш-скрин от portableapps и запустить непосредственно firefox.exe. Не уверен, что он поддерживает параметры командной строки.
      В статье я использую точно такую же портабельную версию.

      Измените путь на с:\BOTS\ff35\App\Firefox\firefox.exe вместо FirefoxPortable.exe

      Ответить
  7. Штука в том, что при подключении imacros+adblock+tab mix выходим на те же 300 мб оперативы, что и в обычной лисе. В чем же тогда выигрышь?

    Ответить

Оставить комментарий