С помощью компилятора Sparkplug Google стремится улучшить производительность JavaScript в своем браузере Chrome. Sparkplug дебютирует в Chrome 91.

Предлагается как часть Chrome Движок JavaScript / WebAssembly V8, Sparkplug позиционируется как «сверхбыстрый» неоптимизирующий компилятор. В бюллетень опубликован 27 мая, Sparkplug описывается как часть конвейера компилятора, расположенного между интерпретатором Ignition и оптимизирующим компилятором TurboFan.

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

И в отличие от большинства компиляторов, Sparkplug не создает промежуточного представления. Вместо этого он компилируется непосредственно в машинный код с помощью одного линейного прохода по байт-коду, генерируя код, который соответствует выполнению этого байт-кода. Весь компилятор – это switch заявление внутри for цикл, который отправляет функции генерации машинного кода.

Разработчики Google V8 отметили, что с 2016 года они отошли от отслеживания синтетических тестов, таких как Octane, к измерению реальной производительности JavaScript за пределами оптимизирующего компилятора. Таким образом, команда работала над несколькими другими аспектами V8, включая синтаксический анализатор, потоковую передачу, объектную модель и кеширование скомпилированного кода.

Авторские права © 2021 IDG Communications, Inc.


#Google #повышает #производительность #JavaScript

Source link