Forwarded from Node.JS [ru] | Серверный JavaScript
Вышел V8 9.1
В новой версии JS движка, используемого в Chrome, Node.js и Deno:
- top-level await теперь включён по умолчанию (флаг больше не требуется)
-
#jsrelease #v8 #javascript
В новой версии JS движка, используемого в Chrome, Node.js и Deno:
- top-level await теперь включён по умолчанию (флаг больше не требуется)
-
in
оператор поддерживает приватные поля (#foo in obj
)#jsrelease #v8 #javascript
Forwarded from Node.JS [ru] | Серверный JavaScript
Bytenode - байт-код компилятор для Node.js
Компилирует Node.js приложения в байт-код движка V8.
- Работает с Node.js и Electron
- CLI
- программируемый API
#jslib #javascript #nodejs #backend #v8
Компилирует Node.js приложения в байт-код движка V8.
- Работает с Node.js и Electron
- CLI
- программируемый API
#jslib #javascript #nodejs #backend #v8
GitHub
GitHub - bytenode/bytenode: A minimalist bytecode compiler for Node.js
A minimalist bytecode compiler for Node.js. Contribute to bytenode/bytenode development by creating an account on GitHub.
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Поиск причины деградации времени сборки Webpack 5
Оуэн Хэннесси поделился историей поиска бага, из-за которого время запуска dev-сервера Webpack замедлилось в пятнадцать раз — "Understanding why our build got 15x slower with Webpack 5".
Проблема возникла после добавления невинной тёмной темы. Первые подозрения упали на CSS-in-JS-библиотеку Linaria. С помощью профилировщика внутри библиотеки была найдена проблемная функция, в которой использовался метод массива
В V8 у метода
#v8 #performance #webpack
https://engineering.tines.com/blog/understanding-why-our-build-got-15x-slower-with-webpack
Оуэн Хэннесси поделился историей поиска бага, из-за которого время запуска dev-сервера Webpack замедлилось в пятнадцать раз — "Understanding why our build got 15x slower with Webpack 5".
Проблема возникла после добавления невинной тёмной темы. Первые подозрения упали на CSS-in-JS-библиотеку Linaria. С помощью профилировщика внутри библиотеки была найдена проблемная функция, в которой использовался метод массива
.concat()
. Переписывание кода без использования .concat()
решило проблему. Однако оставались вопросы, из-за того что в оригинальном коде просадки скорости не было при сборке проекта с помощью Webpack 4. Надо было исследовать исходники V8.В V8 у метода
.concat()
есть две ветки выполнения кода — медленная и быстрая. Медленная ветка начинает работать в том случае, если движок хотя бы один раз устанавливал Symbol.isConcatSpreadable
. В Webpack 5 это происходило в коде, отвечающем за обратную совместимость с четвёртой версией. Для решения проблемы разработчики Webpack добавили экспериментальную опцию backCompat
, которая полностью отключает обратную совместимость, избавляясь от ещё большего количества проблемного кода.#v8 #performance #webpack
https://engineering.tines.com/blog/understanding-why-our-build-got-15x-slower-with-webpack
Tines
Understanding why our build got 15x slower with Webpack 5 | Tines
A while back, we encountered an odd problem. All of a sudden, building our front-end went from taking a few seconds to taking a few minutes. We felt this most acutely when starting our front-end development server.