Новости и события » Hi-Tech » В Chrome тестируют новый подход к компиляции JavaScript

В Chrome тестируют новый подход к компиляции JavaScript

В Chrome тестируют новый подход к компиляции JavaScript

Разработчики JavaScript движка V8 объявили о начале тестирования упрощенной схемы компиляции JavaScript, основанной на применении интерпретатора Ignition и JIT-компилятора Turbofan для всего JavaScript, а не для специфичных ситуаций. Новый режим включен по умолчанию для контрольной группы пользователей веток Chrome Canary и Chrome Developer. Остальные могут включить новый режим активировав опцию "Experimental JavaScript Compilation Pipeline" в "about:flags".

Ранее в V8 использовался достаточно сложный многоуровневый процесс компиляции JavaScript, в которой одноразовый код интерпретировался на первой стадии, после чего генерировались машинный код для JIT, который периодически уточнялся и оптимизировался двумя оптимизирующими JIT-компиляторами. В частности, вначале генерировался машинный код для всего JavaScript при помощи быстрого JIT-компилятора FullCodegen, а для устранения задержки перед готовностью JIT-компилятора применялся интерпретатор Ignition, который также брал на себя единичные операции, не требующие высокой скорости выполнения, для которых нет смысла привлекать полноценный JIT.

Вместо машинного кода Ignition использует байткод, выполняемый в регистровой виртуальной машине, который требует в 2-4 раза меньше памяти, а по скорости выполнения в реальных приложениях очень близок к неоптимизированному машинному коду. После формирования базового машинного кода для JIT, вступали в строй два дополнительных JIT-компилятора, которые генерировали оптимизированный код, учитывая накопленную статистику. Выбор того или иного оптимизирующего компилятора зависел от контекста, но Turbofan изначально развивался как будущая замена Crankshaft, по мере тестирования и стабилизации забирая на себя все больше функций.

Новая схема подразумевает применение на первой стадии только интерпретатора с байткодом с подключением по мере выполнения кода JIT-компилятора. Таким образом полностью исключается фаза упреждающей генерации неоптимизированного машинного кода JIT-компилятром FullCodegen, а также удаляются привязки к старому JIT-компилятору Crankshaft и лишняя логика разветвлений. Ожидается, что изменение положительно скажется на производительности реальных JavaScript-приложений и позволит снизить расход памяти.


RTX 5080 станет первой видеокартой нового поколения от Nvidia

RTX 5080 станет первой видеокартой нового поколения от Nvidia

Инсайдер Kopite7kimi сообщил, что Nvidia сначала выпустит видеокарту GeForce RTX 5080, а после выйдет более производительная RTX 5090. В случае с RTX 40 все было наоборот, сначала в продаже появился флагман RTX 4090, потом подтянулись решения попроще. Судя...

сегодня 12:35

Свежие новости Украины на сегодня и последние события в мире экономики и политики, культуры и спорта, технологий, здоровья, происшествий, авто и мото

Вверх