Кто не хочет работать в более плавном и быстром браузере? Google Chrome, созданный на основе Chromium, обновил свою функцию, которая повышает производительность браузера на 23%. Его последняя версия Chrome 91 вышла на рынок 25 мая и считается лучшей, чем другие версии. По словам Томаса Неттестада, менеджера по продукту Chrome, «важным компонентом быстрого браузера является быстрое выполнение JavaScript». Все это стало возможным благодаря новому компилятору JavaScript «Sparkplug», который упрощает вашу работу. Sparkplug призван заполнить пробел между выполнением и оптимизацией кода JavaScript для достижения наилучшей производительности. Компания Google попыталась сделать свой движок JavaScript быстрее, и это новое обновление доступно в Chrome 91. Давайте узнаем, как вещи делают вашу работу в Интернете более быстрой.

Sparkplug — компилятор JavaScript

Sparkplug облегчает работу по компиляции и позволяет нагромождать код Sparkplug. Он выполняет эту функцию так, как это можно сделать в коде TurboFan. Есть определенные хитрости, как сделать Sparkplug более быстрым компилятором для максимальной производительности. Sparkplug должен скомпилировать все свои функции, в то время как байт-код завершает его и уже выполняет всю тяжелую работу, такую ​​​​как переменное разрешение и многое другое. Таким образом, Sparkplug учитывает байт-код и не полностью компилирует исходный код JavaScript.

Более того, некоторые компиляторы создают промежуточное представление (IR). Но Sparkplug не создает его и напрямую компилирует в машинный код только за один линейный проход над байт-кодом.

Кроме того, он генерирует код, эквивалентный применению этого конкретного байт-кода. Поскольку IR отсутствует, у компилятора есть возможности с низкой оптимизацией, помимо локальных оптимизаций глазка. Это означает, что вам придется портировать всю реализацию отдельно на каждый оставшийся архитектурно-независимый этап. Тем не менее, похоже, что ни одна из этих проблем не является серьезной — быстрый компилятор — это простой компилятор для простого переноса кода.

Обещанные улучшения с большей производительностью

Согласно Google, изменения были внесены для повышения общей производительности Chrome. Предположим, Google разрабатывает стратегию поддержки «кэширования назад-вперед» в Windows10, Linux, macOS и других платформах, а также в Chrome 92. Само название предполагает, что эта экспериментальная функция позволяет мгновенно загружать страницы, когда пользователи пытаются перемещаться между открытыми вкладками с помощью кнопки «вперед» или «назад».

Это хорошо работает только тогда, когда определенная страница уже была посещена и весь сеанс находится в кеше браузера. Google уже описал в одном из своих документов, что кэширование в обратном направлении создается с целью улучшения взаимодействия с пользователем и полной производительности. Это выполняется путем сохранения ранее посещенных страниц после того, как пользователь уходит с этой страницы с помощью кнопок «назад/вперед». Они также упомянули, что существующие в кеше страницы заморожены и не выполняют JavaScript.

Включив экспериментальные флаги, заинтересованные пользователи могут легко протестировать прямой/обратный кеш. Точная дата общего развертывания еще не известна, сейчас Google планирует протестировать эту функцию с выбранной группой пользователей с Chrome 92 или новой версией. Несмотря на метод выпуска пробных версий Origin, планируется придерживаться медленного подхода к развертыванию, относящегося к некоторым пользователям, которые испытают эту функцию раньше, чем другие. Конечно, подобные функции уже несколько лет поддерживаются в Chrome для Safari и Android.

Заключение

Итак, мы увидели, что новый компилятор Sparkplug может успешно улучшить общую производительность вашего браузера. Sparkplug, в основном созданный для быстрой компиляции, который мы можем легко скомпилировать, когда захотим, что позволяет нам гораздо сильнее повышать уровень кода Sparkplug, чем мы можем сделать для кода TurboFan. Он вставляется между уже существующими Ignition и TurboFan в основном для того, чтобы выйти из тупика производительности. Он идеально поддерживает баланс между TurboFan и Ignition и создает собственный машинный код. Но это не зависит от информации, собранной при выполнении кода JavaScript. Кроме того, это помогает быстро начать работу, продолжая создавать более быстрый код. Google назвал Sparkplug «неоптимизирующим компилятором JavaScript». Кроме того, вы можете скачать Chrome 91 с веб-сайта Google для Windows, Linux и macOS.