TurboFan для повышения производительности JavaScript


TurboFan — это последний новый оптимизирующий компилятор Google для ускорения выполнения JavaScript в Chrome.

Впервые он появился в Chromium почти год назад и поставляется как компонент движка V8 JavaScript с Chrome 41.

Как объяснил Бен Тизер в своем блоге, TurboFan превосходит Crankshaft и лучше справляется с:

некоторые типы кода, которые было сложно оптимизировать нашему предыдущему компилятору, например asm.js, литералы классов, с областями действия, именами вычисляемых свойств и циклами for-of.

В более техническом сообщении в блоге Тизер объясняет:

«TurboFan JIT реализует более агрессивную оптимизацию, чем CrankShaft, с помощью ряда передовых методов. JavaScript входит в конвейер компилятора в основном в неоптимизированной форме и транслируется и оптимизируется в более низкие формы до тех пор, пока не будет сгенерирован машинный код. упрощенное внутреннее представление (IR) кода, состоящее из множества узлов, что позволяет более эффективно переупорядочивать и оптимизировать «.

«Механизм оптимизации применяет эти локальные правила систематическим и тщательным образом. Переход от графического представления включает новаторский алгоритм планирования, который использует свободу переупорядочения для перемещения кода из циклов в менее часто выполняемые пути. Наконец, архитектура — конкретные оптимизации, такие как сложный выбор инструкций, используют особенности каждой целевой платформы для достижения наилучшего качества кода ».

Выборочно включив его, Google уже добился некоторых положительных результатов, в том числе увеличения на 29% показателя сжатия zlib в его тестовом пакете Octane.

Тизер завершает свой пост словами:

В ближайшие месяцы мы планируем включить TurboFan для все большего и большего количества типов JavaScript с конечной целью полностью заменить наш существующий компилятор CrankShaft. По мере развертывания код разработчиков будет автоматически получать эти бесплатные ускорения без каких-либо изменений. Следите за будущим прогрессом.


Добавить комментарий