Firefox 54 выжмет из твоего процессора 146% производительности
Еще несколько лет назад разработчики браузера Firefox осознали, что проиграли конкуренцию Chrome и ужаснулись — терять миллиарды легких денег не хотелось. Было проведено специальное собрание, на котором спецы напрягли булки и составили план выхода из кризиса. Ключевым элементом плана стал проект «Электролиз».
Суть проекта: пока Google пилил Chrome и выжимал максимум эффективности, Mozilla спала. В итоге Хром научился задействовать все ядра современных процессоров, а Firefox научился только жрать память, тормозить и падать. Режим Electrolysis и должен был это исправить. В версии Firefox 48 впервые появилась поддержка данного режима. Идея была в точности содрана с Chrome — на каждую вкладку отдельный процесс, а процессы равномерно раскидывались по ядрам, обеспечивая максимально полную загрузку всего CPU.
Почти целый год ушел на запиливание данного режима. И это при том, что компания Mozilla декларирует доходы в сотни миллионов долларов, что теоретически позволяет нанять любое количество программистов самой высокой квалификации. Целый год Electrolysis как бы был, но для его активизации и настройки требовалось лезть в about:config и подкручивать кучу параметров с малоговорящими именами. Понятное дело, что оценить преимущество могла только относительно немногочисленная группа компьютерных специалистов.
И вот случилось чудо — в Firefox 54 новшества были выкачены в продакшен. Теперь в браузере по умолчанию функционирует новая система управления процессами и рендерингом страниц. Не только на каждую вкладку по отдельному процессу, но и работа с GPU была выведена в отдельный процесс, что теоретически еще сильнее должно снизить латентность при работе с UI. К сожалению, данная функция запилена пока только для версии Firefox для Windows. На этом сюрпризы не заканчиваются. Разработчики хвалятся, что стали с уважением относиться к ОЗУ наших компов и провели оптимизацию и по потреблению памяти, снизив накладные расходы на создание отдельных процессов до минимума. Таким образом, Firefox 54 стал — со слов разработчиков — более шустрым, отзывчивым и эффективным.
Комментарии
Чингачгук
14 июня, 2017 - 10:16
Кодеры из Mozilla похоже никогда не слышали про бочку Либиха — принцип, согласно которому скорость каравана определяется скоростью самого медленного верблюда, и ускорив всех остальных верблюдов мы никакого прироста скорости не получим.
Так вот, вместо того, чтобы оптимизировать то, что вызывает основные тормоза, Mozilla бездумно оптимизирует что под руку попадётся — рендер, парсинг, вот это всё.
Но если бы они ненадолго включили свой заRustевший мозг, то поняли бы, что нарекания пользователей вызывают в первую очередь тормоза UI. Что даже микроскопические подлагивания при переключении вкладок уже заставят пользователя уйти на Chrome, где нет ничего подобного. А тут лаги отнюдь не микроскопические. Тут у нас ситуация, когда даже просто закрыть глючную вкладку нельзя, пока JS-движок не просрётся, т.к. на время парсинга весь UI тупо подвисает. Можно легко забацать страничку, которая подвесит весь FF минимум на 15 секунд, да так, что вообще будет "процесс не отвечает" всё это время.
Идиоты, отвлекитесь уже от бесконечного переписывания кода и выделите наконец UI в отдельный, полностью независимый процесс с максимальным приоритетом. Не должно быть ни парсинга, ни выполнения JS, покуда не обработаны пользовательские события.
Если до Mozilla это не дойдёт, а судя по всему так оно и будет, то уже через пару лет доля FF упадёт ещё в 100 раз, и никакие закосы под Хром не помогут.
arenim
14 июня, 2017 - 23:03
Шеф, алло. Это вообще-то проблема JS в любом браузере =) Так уж он устроен, яваскрипт. А вот чтобы подвисала только страница, а не весь UI браузера, и сделали отдельные процессы
Чингачгук
20 июня, 2017 - 01:40
Тормозиллу на помойку давно пора. А хром тоже тормоз еще тот. Я ненавижу копирастов и проприетарщину, но... объективно, edge или тот же сафари дадут фору этим недобраузерам на том же железе — проверял сам.
Комментировать