Firefox

Тема в разделе "Программы под Linux", создана пользователем Pilot, 4 мар 2016.

  1. Pilot

    Pilot Администратор Команда форума

    Многопроцессный Firefox 44.b, оптимизация Electrolysis из песочницы
    Firefox*
    Так уж сложилось, что Firefox использует однопроцессную модель, и реальность такова, что такой подход с учётом динамики развития сети и частичной связки с XUL вызывает, мягко говоря, много неудобств. Один процесс должен обрабатывать несколько потоков, что очень сильно сказывается на производительности браузера в целом. Отзывчивость Firefox оставляла желать лучшего, когда тот же Google Chrome прекрасно рендерил тяжёлые страницы, что никак не сказывалось на производительности других вкладок.

    Такое положение вещей заставляло многих переходить на хром, а кто не хотел — искал пути решения в виде разного рода оптимизаций, которые по большому счёту из-за нелогичного подхода распределения потоков или банального желания настрочить что-то в блог просто усугубляли ситуацию. Теперь один процесс должен был не просто работать, а очень быстро работать! В конечном итоге и разработчики сами прекрасно понимали, что одно дело — мало памяти, другое — низкая скорость работы, которая в основном оправдана старыми связками с XUL. На деле: открываем в Firefox несколько вкладок сразу, скролим их и в момент загрузки видим, что все тормозит — ни о каком плавном серфинге речи быть не могло.

    «Мозилла» начала проект Electrolysis для адаптации движка «Гекко» к использованию нескольких процессов. Что вынуждает «Мозиллу» переключаться на подобную модель построения своего браузера? В первую очередь, это производительность и отзывчивость. Основной целью является уменьшение подвисания (jank), проявляющегося при стандартных операциях — загрузке особенно крупной страницы, наборе текста в веб-форме или прокрутке перегруженной элементами страницы.

    Предлагаю воспользоваться новыми функциями многопроцессорной модели (к сожалению, по умолчанию они отключены, так как еще в разработке). Все функции проверены самим автором, и их значения подобраны для максимально быстрой и стабильной работы. Основной упор сделан на производительность и отзывчивость Firefox в условиях агрессивного серфинга. Потребление памяти в сравнении с однопроцессным режимом должно вырасти где-то на 12%-17% с учетом форсированного использования аппаратного ускорения, а без него не более, чем на 10%.

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

    Оптимизация
    Применимо на всех версиях выше 44beta

    Внимание.Применимо на всех версиях выше 44 на канале обновления «beta». Дело в том что часть кода новых функций просто напросто не будет на Firefox с каналом обновления иным от beta или developer, в целях сохранения стабильности.
    Для изменения канала обновления нужно заменить строку «realise» на «beta» в файле channel-prefs.js. Файл расположен в вашей папке :Firefox/defaults/pref

    Возможна не совместимость с некоторыми дополнениями.

    Правим about:config:

    browser.tabs.remote.autostart
    browser.tabs.remote.autostart.1
    browser.tabs.remote.autostart.2 — true
    layers.async-pan-zoom.enabled — true
    dom.ipc.plugins.asyncInit — true (асинхронность плагинов)
    javascript.options.asyncstack;true
    layers.acceleration.force-enabled = true (отключить при проблемах с видео)
    network.http.max-connections = 512
    network.http.pipelining = true
    network.http.pipelining.aggressive = true
    network.http.pipelining.max-optimistic-requests = 32
    network.http.pipelining.maxrequests = 96
    network.http.pipelining.maxsize = 600000
    network.http.pipelining.ssl = true
    network.http.proxy.pipelining = true
    browser.cache.use_new_backend - 1 (новая система кеширования)
    memory.free_dirty_pages — true
    browser.tabs.animate = false
    image.cache.timeweight = 100
    browser.display.show_image_placeholders - false
    nglayout.initialpaint.delay;0 (создать целое)
    browser.display.auto_quality_min_font_size - (-1)


    Убрать рамку обводящую ссылку во время клика:

    browser.display.focus_ring_on_anything (Логическое) = false
    browser.display.focus_ring_width (Целое) = 0


    Защита

    network.dns.disableIPv6 - false
    network.dns.disablePrefetch - true
    network.predictor.enabled - false
    network.predictor.cleaned-up - true
    network.prefetch-next — false
    browser.send_pings — false
    network.http.speculative-parallel-limit - 0 (ноль)
    privacy.trackingprotection.enabled;true (защита от жучков)
    browser.safebrowsing.enabled;false
    browser.safebrowsing.malware.enabled;false
    datareporting.healthreport.service.enabled;false
    browser.safebrowsing.downloads.remote.enabled;false
    extensions.blocklist.enabled - false
    extensions.getAddons.cache.enabled - false
    browser.chrome.toolbar_tips — false
    media.video_stats.enabled - false
    dom.battery.enabled - false
    media.peerconnection.enabled=false


    Устройства

    dom.gamepad.enabled;false
    dom.vr.oculus.enabled;false
    dom.vibrator.enabled


    Отключить Hello

    loop.enabled;false


    Реклама и снипеты Firefox

    browser.newtabpage.directory.ping — оставить пустую строку
    browser.newtabpage.directory.source — оставить пустую строку
    browser.aboutHomeSnippets.updateUrl — оставить пустую строку


    Теперь качество работы повыситься в разы. Удачи.
     

Поделиться этой страницей