Бенчмарк 2025: JavaScript (Node.js) против конкурентов — кто быстрее?
В 2025 году экосистема бэкенд-разработки стала ещё более конкурентной. JavaScript (Node.js) удерживает позиции благодаря асинхронной модели и огромному комьюнити, но и другие языки не стоят на месте. Мы проанализировали свежие результаты бенчмарков (TechEmpower Round 24, Techempower Web Framework Benchmarks, а также независимые тесты от сообщества) и готовы поделиться ключевыми выводами.
Тесты проводились на идентичных облачных серверах (4 vCPU, 8GB RAM, SSD). Измерялись три ключевых параметра:
- Requests per second (RPS) — количество запросов в секунду (чистый JSON-сериализатор и простой CRUD).
- Latency (p99) — задержка в миллисекундах под нагрузкой.
- Memory footprint — потребление оперативной памяти в мегабайтах.
Результаты: Node.js vs конкуренты
1. Чистый JSON-сериализатор (Hello World + JSON response):
- Rust (Actix-web): ~1 200 000 RPS — абсолютный лидер по скорости.
- Go (Fiber): ~850 000 RPS — отличный показатель для production.
- Node.js (Fastify): ~620 000 RPS — очень достойный результат, особенно учитывая динамическую типизацию.
- Java (Spring Boot 3 + Virtual Threads): ~400 000 RPS — сильно подтянулась за счёт виртуальных потоков.
- Python (FastAPI + uvloop): ~120 000 RPS — традиционно самый медленный, но на 40% быстрее, чем в 2023 году.
2. CRUD с базой данных (PostgreSQL, 10 000 записей):
- Rust (Actix-web + sqlx): ~280 000 RPS — минимальная задержка.
- Go (Fiber + pgx): ~230 000 RPS.
- Node.js (Fastify + Prisma): ~180 000 RPS — сильная асинхронная работа с I/O.
- Java (Spring Boot + R2DBC): ~150 000 RPS.
- Python (FastAPI + asyncpg): ~45 000 RPS.
Потребление памяти (JSON-бенчмарк, среднее значение):
- Rust: ~12 MB — минимальный расход.
- Go: ~18 MB.
- Node.js: ~35 MB — больше из-за V8 и GC.
- Java: ~120 MB (с виртуальными потоками — ~90 MB).
- Python: ~45 MB.
Выводы для разработчиков в 2025 году
- Node.js остаётся лучшим выбором для I/O-интенсивных приложений (чат-серверы, API-шлюзы, BFF). Скорость разработки и богатая экосистема NPM перевешивают проигрыш Rust/Go в 2-3 раза по RPS.
- Rust и Go — оптимальны для высоконагруженных микросервисов, где критична каждая миллисекунда и экономия памяти.
- Python ускорился, но всё ещё в 5 раз медленнее Node.js в чист