Быстрое выполнение JavaScript — «важный компонент» для обеспечения быстрого просмотра. Движок V8 выполняет эту работу в браузере Chrome. «Он ежедневно выполняет код JavaScript, рассчитанный на 78 лет», — говорится в недавнем сообщении Google. Блог Chromium.
В Chrome 91 компания внесла некоторые улучшения в двигатель V8, которые позволили значительно повысить производительность. В частности, Google представил «новый компилятор Sparkplug и короткие встроенные вызовы». Это очевидно экономит «более 17 лет» процессорного времени для пользователей Chrome каждый день.
Google обещает более высокую производительность с Chrome 91
В мае 2017 года Google представила двухуровневую систему компиляции в движке V8, состоящую из Ignition и Turbofan для выполнения JavaScript в браузере Chrome. Ignition отвечает за быстрое выполнение JavaScript, в то время как Turbofan оптимизирует код для максимальной производительности. Компиляторы идут на разные компромиссы на разных этапах выполнения JavaScript.
Turbofan зависит от информации, собранной во время выполнения JavaScript, для генерации высокопроизводительных машинных кодов. Это приводит к более медленному запуску, чем Ignition, что снижает скорость просмотра. Недавно представленный Sparkplug — это новый компилятор JavaScript, который заполняет пробел между этими двумя фазами. Это не зависит от информации, собранной при выполнении JavaScript для генерации собственных машинных кодов. Это позволяет быстро выполнять и быстрее генерировать высокопроизводительные коды.
Между тем, короткие встроенные вызовы позволяют движку V8 оптимизировать расположение сгенерированного кода в памяти, чтобы избежать косвенных переходов при вызове функций. Томас Наттестад, менеджер по продукту Chrome, объясняет, что когда код, специфичный для процессора, генерируется из JavaScript, движок V8 размещает этот код в памяти. Этот код вызывает встроенные функции, которые обрабатывают общие процедуры.
Однако для некоторых процессоров «вызов функций, находящихся дальше от вашего сгенерированного кода, может привести к сбою внутренней оптимизации процессора», — пишет Томас в блоге. При использовании встроенных вызовов Short встроенные функции копируются в ту же область памяти, что и сгенерированный код. Это позволит избежать ошибок оптимизации.
Проще говоря, это некоторые основные изменения, которые делают браузер Chrome быстрее, чем он был раньше. Если вы хотите узнать больше о технических особенностях этих изменений, вы можете перейти в блог V8. Google заявляет, что его браузер ждет еще больше улучшений.