Экспериментальный движок Mozilla Servo близок к выпуску альфа-версии. На днях разработчики сообщили, что планируют первый релиз Servo+Browser.html на июнь 2016 года.

Servo – движок, написанный с нуля на языке программирования Rust. Он отличается лучшей безопасностью, модульностью, а также исключительно высокой производительностью за счёт алгоритма параллельной компоновки страниц и новых парсеров CSS3 и HTML5 на Rust. Два важных компонента используют существующие модули на C++ от Mozilla: это движок SpiderMonkey для обработки JavaScript и библиотека 2D-графики Azure для OpenGL и Direct3D.

Сравнение производительности Servo с другими браузерами, 3 марта 2016 г.
Chrome Canary – 15 FPS
Mozilla Firefox Developer – 9 FPS
Apple WebKit Nightly – 5 FPS
Mozilla Servo – 60 FPS



В данный момент Servo работает под 64-битным Linux, 64-битной OS X, Android и Gonk (Firefox OS). Правда, есть ряд багов с рендерингом. Servo идеально отображает browser.html, но на реальных сайтах возникают проблемы. К июню разработчики хотят исправить баги с рендерингом наиболее актуальных сайтов — Github, Duckduckgo, Hackernews и Reddit. Открыты соответствующие тикеты.

github.com/servo/servo/issues/9914 [meta] баги github.com
github.com/servo/servo/issues/9915 [meta] баги duckduckgo
github.com/servo/servo/issues/9916 [meta] баги hackernews
github.com/servo/servo/issues/9917 [meta] баги reddit

Высокий уровень параллелизма — ключевое достоинство Servo. Оно позволяет использовать многоядерную архитектуру современных процессоров. Разработчики объясняют причины, которые сподвигли их на создание нового движка. Во-первых, современные движки огромны, это миллионы строк кода. Такой объём кода невозможно оптимизировать, он слишком велик и не поддаётся рефакторингу. Легче переписать с нуля.



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

Вторая причина, по словам разработчиков, это небезопасность C++. Большинство уязвимостей в современных браузерах связаны с эксплуатацией модели памяти C++. В отличие от него, Rust – быстрый и безопасный язык программирования, с автоматическим управлением памятью, без состояний гонки, со встроенным параллелизмом и т.д.

Презентация "Servo: Building a Parallel Browser"

Комментарии (48)


  1. Akuma
    16.03.2016 11:58
    +5

    Скорость — это конечно здорово, а что у него с поддержкой стандартов? Еще один недобраузер нам точно не нужен.


    1. exfizik
      16.03.2016 19:45
      +4

      Еще альфа не вышла, а уже началось… "недобраузер".


      1. Akuma
        16.03.2016 20:08
        -1

        Просто я веб-разработчик )) По понятным причинам интересуюсь заранее :)


        1. exfizik
          16.03.2016 22:08
          +1

          Интересно, какой ответ вы ожидаете заранее? Неужто вам скажут "не, на фиг стандарты, будем писать просто сферический браузер в вакууме"? :) Наверняка планируется поддержка на уровне того, что сейчас Фаерфокс поддерживает — иначе какой смысл?


          1. Akuma
            16.03.2016 22:16
            -2

            О, такое ощущение, что разработчики ИЕ6 примерно так и думали при разработке :)


            1. SilverTH
              16.03.2016 23:20

              Ну в начале ИЕ6 ничего был. Проблема была в том, что после его выхода думать перестали.


            1. chaloner
              17.03.2016 05:45
              +2

              2001 год.
              15 лет прокло, Карл, 15 лет.
              Может хватит пинать дохлого осла?


            1. mkv
              17.03.2016 09:34
              +1

              А при чем здесь ИЕ6? ИЕ6 стал таким из-за отсутствия конкуренции, у firefox ее более чем хватает.


  1. TheBeast
    16.03.2016 12:37

    Интересно, вендорные префиксы у него будут свои, -moz или -webkit?


  1. meider
    16.03.2016 12:39

    Ну ведь еще оптимизации под процессор — intel, amd их то будут учитывать? Или опять поддерживать древний хлам вроде атлонов и пней


  1. MayRiv
    16.03.2016 12:45
    +4

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


    1. kafeman
      16.03.2016 13:54

      Не знаю, почему вас минусуют, но я тоже его вспомнил, когда впервые услышал про Servo.


    1. Rivethead
      16.03.2016 14:58
      +6

      всего-то надо было сперва сделать Rust, а потом с имеющимся опытом за плечами запилить новый движок. делов то!


  1. stepanp
    16.03.2016 14:09

    Неужели будет браузер который не тормозит?


  1. koceg
    16.03.2016 14:10

    К июню разработчики хотят исправить баги с рендерингом наиболее актуальных сайтов — Github, Duckduckgo, Hackernews и Reddit.

    Я понимаю, «актуальность» — понятие индивидуальное. Но серьёзно, DuckDuckGo? Что там рендерить-то? Почему тогда не google.com?


    1. xerxes
      16.03.2016 15:13
      +3

      Под «наиболее актуальных» следует читать «наиболее простых, состоящих из одной html страницы»


    1. exfizik
      16.03.2016 19:46

      Видимо, google.com и так работает без багов.


  1. Stronix
    16.03.2016 14:11
    +1

    Хм, а если начать с упрощения подсчёта строк ;) Например

    $ grep -R "" --include="*.c" --include="*.cpp" --include="*.h" --include="*.tbl" | wc -l


  1. deniskx
    16.03.2016 14:14

    Всегда было интересно, его будут поддерживать сайтописатели? А то получится как Opera с Presto, движок может и крутой, а особенности реализации никто не учитывает. Мозилла, конечно, популярнее Оперы, но до Гугла далеко и популярность продолжает снижаться. Вот если бы гугл такое выкатил, тогда другое дело.


    1. koceg
      16.03.2016 14:40

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


      1. deniskx
        16.03.2016 15:34

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


        1. koceg
          16.03.2016 16:03

          Ну так у неё и доля зарубежом была в районе одного процента. Зачем тратить силы?


    1. Eugeny1987
      16.03.2016 16:16
      +1

      в первую очередь, я это учитываю, ибо это мой основной браузер


  1. potan
    16.03.2016 15:43
    +2

    Главное, что бы не падал на 20-ти окнах в каждой по 100 вкладок!


  1. ganzmavag
    16.03.2016 16:04
    +4

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


  1. albik
    16.03.2016 19:46

    FPS, параллельная компоновка, многопроцессорность — но вот сходу не удалось нагуглить тесты по загрузке CPU и потреблению памяти. Обещается аналогичное потребление памяти, но вот как-то берут сомнения — то же самое говорили и при прикручивании SpiderMonkey, мол, все будет огонь и совсем занидорога по ресурсам, что из этого получилось — все и так видят, страница чуть посложнее «Hello, world» при рендере тянет мегабайт на 100.


  1. ababo
    16.03.2016 20:58

    Ну, наконец-то, а то я уже планировал начинать беспокоиться… за Rust.


  1. lksdfj89
    16.03.2016 22:19

    Т.е. теперь при открытие нескольких тяжёлых вкладок браузер будет «забивать» не одно ядро, а весь процессор?


  1. Arhitecter
    16.03.2016 23:30

    Судя по тому, как сейчас работают Opera Presto и Edge — главная беда в прожорливости яваскрипта, а поскольку по этой части Мозилла ничего не меняет, то и возлагать особых надежд не стоит :(


    1. Olegi4
      17.03.2016 09:21

      Что Вы имеете ввиду про Opera и Edge — они хорошо работают с JS?


      1. Arhitecter
        18.03.2016 01:55

        Ну, скажем так, Opera Presto в обработке яваскрипта осталась такой, как была, и любая прожорливая страница (тот же ютуб) начинает биться в конвульсиях. Но она совершенно спокойно работает на пк с 1Gb? оперативной памяти, позволяя открывать приличное количество вкладок. Причём, во всём остальном скорость 12-ой оперы шикарна. Edge, с другой стороны, наибольшие усилия приложил именно к оптимизации движка, который обрабатывает JS, и во многом преуспел. На данный момент — самый комфортный современный браузер для слабого железа. Как прожорством к оперативке, так и использованию процессора. Если я активно использую тот же Хром на своём старом ноутбуке, то после четвертой вкладки он неистово тормозит, и если открываются какие-то особенно тяжелые сайты, то тот нагревается до такого состояния, что может уйти в автоматическое отключение. Лиса лучше, но оперативку ест тоже весьма активно и если что-то не так, просто с натугой вылетает.


        1. Olegi4
          18.03.2016 07:59
          +1

          Спасибо за развернутый ответ. Буду иметь ввиду. Для себя пока выбрал решение: FF + NoScript, ибо с включенным JS тяжко — CPU загружен, вентиляторы шумят… А так сразу — тишина и покой :)


  1. EndUser
    16.03.2016 23:46

    Эх, если бы найти способ хронометрировать загрузку в разбивке по аддонам/расширениям…
    Скорость работы чистого Fx/Chromium меня устраивает, меня не устраивает чистый Fx/Chromium.
    (Но из-за мощности расширений симпатичнее Fx)

    Кто подскажет, как замерить какой аддон сколько времени сжирает? Без мучительного «по одному, по половине отключать подключать».

    Что касается «переписать с нуля», это сразу и прямо навевает воспоминания о классическом программистском юморе.
    Но надежда на шустрый браузер таки теплится… :-)


  1. Ajex
    17.03.2016 01:29

    А может кто подскажет, есть ли в природе какой-то стабильный браузер, хотя бы мало-мальски поддерживающий основные стандарты, чтобы можно было его использовать на старых ноутах. Просто сейчас у меня хром умудряется тормозить на SSDшке, i7 и с 32 гб памяти, я уже и не знаю, что ему нужно для полного счастья.
    Про старые и говорить уже нечего, хотя раньше на них можно было вполне комфортно работать.


    1. Ezhyg
      17.03.2016 01:46

      Опера? :) (старая конечно же)
      Palemoon на основе Огнелисы.

      Пытался вспомнить один мелкий и лёгкий браузер на хромиуме, лежит на живой флешке, а она не под рукой, не смог… но там на иконке привидение (вроде бы).


    1. vlivyur
      17.03.2016 09:30

      Opera Presto.


    1. Darth_Malok
      17.03.2016 09:36
      +1

      K-Meleon? Интерфейс правда немного «специфичный».


    1. Alexey9846
      17.03.2016 09:36

      SeaMonkey работает вполне сносно на дохлом целероне и гигабайте памяти, рекомендую.
      mozilla-russia.org/products/seamonkey


    1. deniskx
      17.03.2016 12:24
      -1

      Хромобраузеры нормально работают на старых процессорах, хотя бы P4 с HT. Но им надо много памяти, особенно если много вкладок открывать. Если RAM 1 Гб и 2-4 вкладки используется обычно, то пойдут. Иначе лисобраузеры, из-за своей монолитности и одноядерности тормозят на тяжелых сайтах заметно сильнее, иногда даже подвешивая интерфейс, но едят мало памяти, на 1 Гб RAM с подкачкой можно открывать очень много вкладок. Если ставить блокировщик рекламы, то ublock. В крайнем случае можно поставить еще более оптимизированную для старых ПК Opera Presto, но у нее уже очень много проблем с сайтами и тогда ни в коем случае не ставить расширение Adblock, а пользоваться родным блокировщиком. Главное имхо движок, различия в производительности у клонов минимальны. И я бы избегал слишком старых версий, они могут быть даже медленнее с современным web-ом, потому что новые версии все время оптимизируют. Та же Presto в целом шустрее, но сложные тяжелые сайты, типа FB ее уже вешают. То есть смотря еще какие сайты.


      1. deniskx
        17.03.2016 12:30

        А еще в Presto на слабых CPU (да и не только) сильно тормозит CSS анимация, в то время как в FF и Chrome вполне нормально.


      1. vlivyur
        17.03.2016 12:39

        Единственный сайт, который вешает presto — ulmart.ru. Но это проблемы сайта. С fb особых проблем не было.


        1. deniskx
          17.03.2016 14:29

          Вот еще что заметил и что меня на старой машине сильно напрягло. Обычно на старых системах еще используют XP и там, если свернуть Оперу и уйти чай попить пару минут, вернувшись и развернув она сильно тормозит, потому что все сбросила в своп. Я заметил, что лиса до последнего все держит в памяти и пользоваться ей комфортно при малом ОЗУ. Может это какой-то хак, обычно программы при сворачивании данные сбрасывают, но реально полезный, особенно заметно на тяжелых приложениях типа браузера.

          Можно файл подкачки отключить, тогда Опера будет летать. Но при недостатке памяти программы будут вылетать, а это не вариант.


    1. Ezhyg
      19.03.2016 08:57

      Для старых ноутов (смотря насколько старых) можно ещё попробовать RemixOS (или другой «андроид x86») или CloudReady. Использую их на нетбуке Samsung NC110.


  1. XanderBass
    17.03.2016 11:35
    -1

    То есть Огнелис таки на время перестанет тормозить и откушивать половину ОЗУ?


  1. ImMetatron
    17.03.2016 23:49

    Большие надежды, лишь бы никто их не выкупил и не прикрыл всё это до поры до времени. Либо наоборот.


    1. Propp
      18.03.2016 09:32
      +1

      Оно же вроде OpenSource — даже если их прикупят, совсем закрыть не получится.


      1. ImMetatron
        18.03.2016 11:17

        В принципе да, логично.


  1. edikl
    18.03.2016 15:01

    Интересно, а почему ещё jquery не включили в базовую поставку браузеров? Чтобы она (библиотека jquery) сама обновлялась вместе с браузером. А разработчикам сайтов достаточно было бы указать в head какой нибудь код, для включения встроенной jquery на сайте.