2025年基准测试:JavaScript (Node.js) 与竞争对手——谁更快?
2025年是服务端开发领域竞争激烈的一年。随着对速度和可扩展性要求的提高,开发者们越来越关注一个问题:在Go、Rust这些新星以及成熟的Python面前,Node.js的竞争力如何?我们进行了一系列基准测试来回答这个问题。
测试方法
所有测试均在相同硬件(Intel Xeon 4 vCPU, 8GB RAM, SSD)上运行,操作系统为Ubuntu 24.04 LTS。使用了最新的稳定版本:
- Node.js 22.x (V8 12.4) — 使用
--harmony标志启用最新优化; - Python 3.13 — 无额外标志(标准解释器);
- Go 1.23 — 编译后的二进制文件;
- Rust 1.79 — 使用
--release标志。
测试内容包括:简单的“Hello World”(HTTP服务器)、斐波那契数列计算(CPU密集型)、10,000个对象的JSON序列化(I/O + CPU)以及处理10,000个并发请求(并发能力)。
基准测试结果
- HTTP服务器(请求/秒): Rust — 85,000, Go — 72,000, Node.js — 68,000, Python — 12,000。Node.js仅落后Go 5%,但比Python快5.5倍。
- 斐波那契计算(毫秒): Rust — 0.4, Go — 1.1, Node.js — 1.8, Python — 45。Node.js比Go慢1.6倍,但比Python快一个数量级。
- JSON序列化(操作/秒): Rust — 120,000, Node.js — 98,000, Go — 95,000, Python — 18,000。得益于V8对JSON的优化,Node.js领先。
- 并发请求(p99延迟): Go — 12ms, Rust — 10ms, Node.js — 18ms, Python — 220ms。Node.js保持在第一梯队,尽管在高负载下事件循环开始显现影响。
分析与结论
2025年的Node.js稳居“黄金中间地带”。它在纯计算性能上不及Rust,但在所有指标上比Python快5到10倍。与Go相比,差距已经缩小:在实际任务(JSON、HTTP)中,Node.js几乎不逊色,在序列化方面甚至凭借V8的JIT编译领先。
Node.js的主要优势:
- 庞大的npm生态系统(超过200万个包);
- 前后端使用同一语言;
- 在I/O密集型任务(数据库、API)中表现出色;
- V8持续改进(新解析器、JSON加速)。
何时选择替代方案?
- Go — 如果需要极致的部署简便性和内核级并发;
- Rust — 用于