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

Вакансии в тему:

Лого компании «Finch»
Android-разработчик
Android-разработчик
Finch, Москва, от 80 000 до 150 000 ₽ (до налогов)
Лого компании «Finch»
Junior Frontend-разработчик
Junior Frontend-разработчик
Finch, Москва, от 70 000 до 90 000 ₽ (до налогов)
Лого компании «Wheely»
Frontend Developer
Frontend Developer
Wheely, Москва, 180 000 ₽
Лого компании «CSBI»
Full-stack разработчик ASP.NET
Full-stack разработчик ASP.NET
CSBI, Санкт-Петербург, от 80 000 до 120 000 ₽
Лого компании «Банк Точка»
Android developer
Android developer
Банк Точка, Екатеринбург, 130 000 ₽