Skip to content

性能

Nestelia 在 Elysia 之上添加了一层轻量的装饰器和依赖注入层——几乎没有性能开销。结果:以 Elysia 级别的速度获得 NestJS 风格的开发体验。

1.7x faster than Fastify
1.9x faster than Express
2.3x faster than NestJS
ElysiaBun
74,395 reqs/s
NesteliaBun
71,703 reqs/s
FastifyNode
42,640 reqs/s
ExpressNode
37,825 reqs/s
NestJSNode
30,582 reqs/s
5 个场景的平均请求数/秒。500 连接,每个场景 10 秒。macOS arm64,Bun 1.3,Node 24。

各场景结果

场景NesteliaElysiaFastifyExpressNestJS
Plain Text GET /74,91479,28747,60040,38538,413
JSON GET /json73,43876,92545,01038,80736,527
Path Params GET /user/:id74,28975,07745,74738,25027,598
POST JSON POST /user62,39963,48729,79334,03824,833
DI + Service GET /users73,47677,19745,05137,64725,539
平均71,70374,39542,64037,82530,582

如何复现

bash
# 安装基准测试依赖
cd benchmark && bun install && cd ..

# 安装负载测试工具
brew install bombardier

# 运行所有基准测试(5 个场景 × 5 个框架)
bun run bench

# 或运行特定框架
bun run bench nestelia elysia fastify

为什么 Nestelia 这么快?

Nestelia 在启动时完成所有依赖注入、模块连接和路由注册。在请求处理时,控制器直接调用服务方法——没有中间件链,没有每次请求的容器查找。

NesteliaNestJS
运行时BunNode.js
HTTP 层ElysiaExpress(默认)
DI 解析启动时启动时
元数据反射启动时缓存每次请求
请求上下文快速路径跳过始终创建
中间件链无(Elysia 处理器)Express 中间件栈
验证Elysia TypeBox(编译时)class-validator(运行时反射)

基于 MIT 许可证发布。