Google разработала оптимизированный JS-интерпретатор для движка V8
Новости
4К открытий4К показов
Для уменьшения количества памяти, потребляемой 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 процентов.
4К открытий4К показов