Turbofan - важнейшая часть движка v8, на котором работает (Node.js, Google Chrome, Yandex и др.)
Благодаря нему, часто используемые части кода в вашем приложении компилируется и исполняется в несколько раз быстрее.
Поэтому важно писать код так, чтобы помогать движку ускорять ваш код правильно.
Вот несколько советов, как не помешать JIT-компилятору улучшить производительность:⚡️
Изменение типов переменных:
Изменение шейпов объектов:
Об устройстве объектов в javascript расскажу позже, но стоит знать, что у каждого объекта есть shape.
Несколько объектов могу иметь одинаковый shape.
shape - форма объекта (какие у объекта есть ключи)
Поэтому любое динамическое добавление/удаление ключей в объекты изменяет его shape
и тем самым ухудшает оптимизацию кода.
#javascript #v8 #turbofan
Благодаря нему, часто используемые части кода в вашем приложении компилируется и исполняется в несколько раз быстрее.
Поэтому важно писать код так, чтобы помогать движку ускорять ваш код правильно.
Вот несколько советов, как не помешать JIT-компилятору улучшить производительность:
Изменение типов переменных:
function add(a, b) {
return a + b; // Если сначала передаются числа, а потом строки — Turbofan сбросит оптимизацию
}
let i = 0
for (let i = 0; i < 1000; i++){
add(1, 2);
} // код оптимизировался (Байт код -> Машинный код)
add("1", "2");
// код деоптимизировался (Машинный код -> Байт код)
Изменение шейпов объектов:
Об устройстве объектов в javascript расскажу позже, но стоит знать, что у каждого объекта есть shape.
Несколько объектов могу иметь одинаковый shape.
shape - форма объекта (какие у объекта есть ключи)
Поэтому любое динамическое добавление/удаление ключей в объекты изменяет его shape
и тем самым ухудшает оптимизацию кода.
const obj = { x: 1, y: 2 };
obj.z = 3; // Добавление ключа = изменение shape
delete obj.x; // Удаление ключа = изменение shape
#javascript #v8 #turbofan
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3👏3