-
-
Notifications
You must be signed in to change notification settings - Fork 12
koa rapid router超越koa router性能的100多倍
沈赟杰 edited this page Mar 15, 2019
·
7 revisions
如果使用nodejs来搭建Service服务,那么我们首选express
或者koa
,而fastify
告诉我们一个数据:
Framework | Version | Router? | Requests/sec |
---|---|---|---|
hapi | 18.1.0 | ✓ | 29,998 |
Express | 4.16.4 | ✓ | 38,510 |
Restify | 8.0.0 | ✓ | 39,331 |
Koa | 2.7.0 | ✗ | 50,933 |
Fastify | 2.0.0 | ✓ | 76,835 |
- | |||
http.Server |
10.15.2 | ✗ | 71,768 |
从数据中可以看出,Koa
的性能远大于express
。当然,它的测试基于简单的单路由测试。不过由此我们可以看到fastify
的性能远大于Koa
。相信使用过fastify
的小伙伴都会对它的性能速度感到惊讶。其实原理很简单,就是请求的URL快速匹配Callback。如何做到,理论上也很简单,就是找寻它的最短路径来匹配。所以一般能够快速匹配的,都是通过空间换时间的方式来达到效果。
这里,我还想告诉大家一点,fastify
并不是最快的。
今天的主角就是koa-rapid-router。为什么我们会以KOA
打头呢?因为这篇文章目的其实是与koa-router
的比较,而不是fastify
。而此路由架构,也是为了在使用KOA
的时候能够接近fastify
的性能(经过测试,没有超过fastify
,KOA
本身写的性能也有问题)。