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. По мере развертывания код разработчиков будет автоматически получать эти бесплатные ускорения без каких-либо изменений. Следите за будущим прогрессом.