Перейти к содержимому

Фотография

Тюнинг firefox


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 6

#1 Wolonter

Wolonter

    Постоянный участник

  • Members
  • PipPipPip
  • 205 сообщений
  • ФИО:Макс
  • Город:Екатеринбург


Отправлено 05 мая 2012 - 12:04

Приветствую, коллеги.

Ситуация: несколько сотен тестов, CI jenkins, используем WebDriver. Есть требование процесса разработки - тесты проходят за час.

Кроме прочих работ по оптимизации и распараллеливанию тестов заметили, что в связке БД + тестируемое приложение + тестирующее приложение + firefox на данный момент ограничением стал firefox (ест больше всех CPU и прилично памяти).

Добавил в тестирующую систему настройки профиля firefox:

private WebDriver openFirefox()
    {
        FirefoxProfile firefoxProfile = new FirefoxProfile();
        //Память на вкладки
        firefoxProfile.setPreference("browser.sessionhistory.max_total_viewer", "0");
        firefoxProfile.setPreference("browser.sessionhistory.max_entries", 1);
        firefoxProfile.setPreference("browser.sessionhistory.max_total_viewers", 1);
        firefoxProfile.setPreference("browser.sessionstore.max_tabs_undo", 0);
        //Асинхронные запросы к серверу
        firefoxProfile.setPreference("network.http.pipelining", true);
        firefoxProfile.setPreference("network.http.pipelining.maxrequests", 8);
        //Задержка отрисовки
        firefoxProfile.setPreference("nglayout.initialpaint.delay", "0");
        //Сканирование внутренним сканером загнрузок
        firefoxProfile.setPreference("browser.download.manager.scanWhenDone", false);
        //Анимация переключения вкладок
        firefoxProfile.setPreference("browser.tabs.animate", false);
        //Автоподстановка
        firefoxProfile.setPreference("browser.search.suggest.enabled", false);
        //Анимация гифок
        firefoxProfile.setPreference("image.animation_mode", "none");
        //Резервные копии вкладок
        firefoxProfile.setPreference("browser.bookmarks.max_backups", 0);
        //Попробовать установить и посмотреть что получится
        //firefoxProfile.setPreference("browser.cache.memory.enable", false);
        return new FirefoxDriver(firefoxProfile);
    }

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

UPD:
Mozilla Firefox 10.0.2
2.6.38 Ubuntu-server x86_64
  • 0

#2 sawoy

sawoy

    Новый участник

  • Members
  • Pip
  • 51 сообщений
  • ФИО:Alex Savchuk

Отправлено 05 мая 2012 - 19:38

Я бы делал так:

1. Настройки системы:
* отключить swap или через swappiness
* /tmp в память
* turn off unused services etc ...

2. Настройки FF:
* профиль целиком в память

3. Настройки профиля (кроме уже упомянутых):
* browser.formfill.enable
* dom.ipc.plugins.enabled && dom.ipc.plugins.enabled.<filename>
* geo.enabled
* сontent.switch.threshold
* browser.search.update
* network.dnscacheentries
* network.dnscacheexpiration
* application.use_ns_plugin_finder
* svg.enabled
* content.notify.interval
* content.interrupt.parsing
* content.switch.threshold
  • 0

#3 LeshaL

LeshaL

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 094 сообщений
  • ФИО:Алексей Лянгузов
  • Город:Saint-Petersburg


Отправлено 05 мая 2012 - 20:48

1) Уменьшить кол-во тестов, чтобы они проходили за час. Сделать разбивку на тестовые наборы. Остальные тесты, которые не успевают пройти за час запускать отдельно. Например ночью.
2) Использовать Хром. По моим ощущениям он самый быстрый.
3) Уменьшить количество перестартовок браузера, если таковые есть.
4) Уменьшить размер базы, гонять "часовые" тесты на эталонных данных. Тесты на расширенном наборе данных запускать ночью.
5) Избавиться от дублирующихся тестов, если таковые есть. Убрать большинство негативных проверок в другой тестовый набор.
6) Переиспользовать данные, созданные другими тестами, если они удовлетворяют условиям, но не полагаться на то, что они там уже есть.
7) Отказаться в большинстве тестов от селениума и тестировать не через UI.
  • 0
Regards,
Alexey

#4 Wolonter

Wolonter

    Постоянный участник

  • Members
  • PipPipPip
  • 205 сообщений
  • ФИО:Макс
  • Город:Екатеринбург


Отправлено 06 мая 2012 - 17:59

1) Уменьшить кол-во тестов, чтобы они проходили за час. Сделать разбивку на тестовые наборы. Остальные тесты, которые не успевают пройти за час запускать отдельно. Например ночью.
2) Использовать Хром. По моим ощущениям он самый быстрый.
3) Уменьшить количество перестартовок браузера, если таковые есть.
4) Уменьшить размер базы, гонять "часовые" тесты на эталонных данных. Тесты на расширенном наборе данных запускать ночью.
5) Избавиться от дублирующихся тестов, если таковые есть. Убрать большинство негативных проверок в другой тестовый набор.
6) Переиспользовать данные, созданные другими тестами, если они удовлетворяют условиям, но не полагаться на то, что они там уже есть.
7) Отказаться в большинстве тестов от селениума и тестировать не через UI.


1 - отдельная длинная история, офтоп
2 хром проверю, посмотрим.
3 уже сделано.
4. уже сделано
5 см. пункт 1
6. уже сделано
7 пункт - я могу посоветовать(в очередной раз...), но не сделать.

Вопрос именно в ускорении firefox. Остальные способы я не отбрасываю, и не считаю этот решающим.
Обратно же, думаю, что если мы в этой теме соберем годный конфиг - будет хорошо.
  • 0

#5 Wolonter

Wolonter

    Постоянный участник

  • Members
  • PipPipPip
  • 205 сообщений
  • ФИО:Макс
  • Город:Екатеринбург


Отправлено 07 мая 2012 - 07:51

Я бы делал так:

1. Настройки системы:
* отключить swap или через swappiness
* /tmp в память
* turn off unused services etc ...


Не моя епархия, но посоветую..

2. Настройки FF:
* профиль целиком в память


То есть?

3. Настройки профиля (кроме уже упомянутых):


Часть установил.

Итого - проведен ряд опытов и выяснилось, что подобная настройка firefox экономит до 15% памяти, одну-две минуты времени на час, а некоторые настройки ломают работу браузера с асинхронным интерфейсом.
Будем искать другие пути.
  • 0

#6 kimandrew

kimandrew

    Новый участник

  • Members
  • Pip
  • 32 сообщений
  • ФИО:Ким Андрей
  • Город:Калининград

Отправлено 30 декабря 2013 - 10:33

С наступающим! В силу нехватки опыта, не могу вам подсказать, а наоборот спрошу совета.

Нельзя ли как-то прикруть какой-нибудь профиль, чтобы фаерфокс постоянно юзал его. Тем самым используя кэш и сокращяя время на прогрузку элементов?
  • 0

#7 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 894 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 30 декабря 2013 - 14:05

С наступающим! В силу нехватки опыта, не могу вам подсказать, а наоборот спрошу совета.

Нельзя ли как-то прикруть какой-нибудь профиль, чтобы фаерфокс постоянно юзал его. Тем самым используя кэш и сокращяя время на прогрузку элементов?


как-то так:

File myProfile = new File("src/.....");
FirefoxProfile profile = new FirefoxProfile(myProfile );
driver = new FirefoxDriver(profile);


если не работает, то надо гуглить
  • 0


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных