Google разработала оптимизированный JS-интерпретатор для движка V8

Для уменьшения количества памяти, потребляемой JS-движком V8, Google разработала Ignition, интерпретатор JavaScript. Компания считает, что он неплохо справляется с повышением веб-производительности. 

Используя Ignition, V8 переводит JS-функции в байткод, уменьшая размер кода на 25–50%. Затем байткод исполняется высокопроизводительным интерпретатором, при этом скорость выполнения не уступает оной при использовании старого компилятора.

V8, как и другие движки, использует JiT-компиляцию для повышения производительности. Его алгоритм исполнения скриптов использует переключение между обычным компилятором и двумя оптимизирующими, CrankShaft и TurboFan. Из-за этого JiT-скомпилированный машинный код потребляет много памяти, даже если исполняется всего раз. Ignition, который предназначен для замены базового компилятора, потребляет меньше памяти и упрощает алгоритм.

Интерпретатор использует низкоуровневые, не зависящие от платформы макроассемблерные инструкции TurboFan для генерации байткод-хэндлеров опкодов. TurboFan компилирует инструкции для целевой архитектуры, что даёт оптимизированный код, который можно использовать в виртуальной машине V8.

Начиная с 53 версии Chrome, Android-устройства с менее чем 512 МБ оперативной памяти смогут использовать Ignition. Эксперименты показали, что использование Ignition понижает потребление памяти каждой вкладкой примерно на 5 процентов.

Источник: ITWorld