Новый фреймворк для JavaScript побил рекорды производительности
Москва, 15 октября 2020 года. Сообщество разработчиков взбудоражено: анонсирован фреймворк NeoV8, который, по заявлениям создателей, демонстрирует в 3,2 раза более высокую пропускную способность (RPS) при обработке HTTP-запросов по сравнению со стандартным Node.js 14. LTS. Бенчмарки, опубликованные на GitHub, показывают 89 000 запросов/сек против 28 000 у конкурента на простом CRUD-приложении.
Создатель фреймворка, Алексей Белов (ex-инженер V8 в Google), объясняет прорыв отказом от традиционного цикла событий (Event Loop) в пользу асинхронного планировщика на основе io_uring (механизм асинхронного ввода-вывода в Linux 5.x). «Мы переписали ядро работы с сетью и файловой системой. Вместо того чтобы ждать коллбэки, планировщик предзагружает данные в буфер, экономя до 40% времени на переключении контекста», — заявил Белов в интервью порталу Habr.
Эксперты, однако, призывают к осторожности. «Цифры впечатляют, но тесты проводились на синтетическом API без сложных вычислений. В реальных проектах с БД и внешними вызовами разрыв может сократиться до 30-50%», — комментирует Никита Прокопьев, ведущий разработчик Яндекс.Облака. Тем не менее, бенчмарк TechEmpower уже включил NeoV8 в свой рейтинг Round 20, где он занял 4-е место среди всех фреймворков, обогнав Fastify и Koa.
Фреймворк полностью совместим с npm-пакетами, но требует Node.js ≥ 14.5 и ядро Linux 5.4+. На Windows и macOS производительность падает на 60% из-за отсутствия io_uring. Релиз версии 1.0 запланирован на декабрь 2020 года, а пока доступен в статусе Release Candidate.
Рынок уже реагирует: стартап DeployNow интегрировал NeoV8 в свой edge-сервис, заявив о снижении затрат на серверы на 35%. Однако крупные компании, такие как Netflix и PayPal, пока не комментируют возможный переход. Остаётся вопрос: станет ли NeoV8 новым стандартом или останется нишевым инструментом для high-load систем?