TGViewer
Node.js Recipes Node.js Recipes @node_recipes · 3.1K subscribers
Post #281 1.78K
Как обнаружить синхронные операции в Node.js коде?
#nodejs_api

Каждый #nodejs разработчик знает, что блокировать Event Loop-а плохо. Блокировка может быть по двум причинам:
– cpu intensive операции, т.е. с большим количеством вычислений. Примеры: трансформация JSON объекта на 2 мегабайта, обход большого массива, подсчеты хешей.
– синхронные операции, т.е. операции которые до своего завершения блокируют Event Loop, читай дальнейшее выполнение JavaScript. Пример – все синхронные файловые операции.

Ваш код может использовать синхронные операции неявно. Кто его знает, что там в node_modules. Именно о том, как быстро найти такие места этот рецепт.

У Node.js есть специальный флаг --trace-sync-io. При его использование в консоль будут выводить trace для первого вызова любого синхронного вызова. Запускаем с этим флагом или c переменной окружения NODE_OPTIONS=--trace-sync-io и анализируем результаты. На своем проекте я так обнаружил, что пора выкинуть module-alias и переконфигурировать pino.

Рецепты по теме:
- Как запускать Node.js с доп. аргументами?
More from @node_recipes
  1. Jan 5, 2026По всьому світу проходять Cursor Meetups, де локальні спільноти діляться досвідом використ…
  2. Jan 5, 2026Думки на вихідних: Full Stack Learning Подивився останнє відео Сергія Немчинського про фул…
  3. Dec 31, 2025Залишаються лічені години 2025-го. І будьмо чесними: сам перехід на 2026-й нічого автомати…
  4. Dec 25, 2025Моє відкриття 2025 року, як доповідача, це Napkin.ai. На малюнку приклад того, як Napkin г…
  5. Dec 23, 2025А ось й ChatGPT додав 2025 review feature. Авжеж в мене half coded Nest.js app, як ще :)
  6. Dec 23, 2025Моє технічне відкриття 2025 року — centrifugal.dev У 2025-му я багато працював із реальним…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →