Tests de performance
Les tests de performance ne sont que des tests, mais ils comptent pour nous.
Routeurs
Nous avons mesuré la vitesse de plusieurs routeurs JavaScript. Par exemple, find-my-way est un routeur très rapide utilisé par Fastify.
- @medley/router
- find-my-way
- koa-tree-router
- trek-router
- express (traitement inclus)
- koa-router
Nous avons commencé par enregistrer les routes suivantes dans chaque routeur. Elles ressemblent à celles d’applications réelles.
export const routes: Route[] = [
{ method: 'GET', path: '/user' },
{ method: 'GET', path: '/user/comments' },
{ method: 'GET', path: '/user/avatar' },
{ method: 'GET', path: '/user/lookup/username/:username' },
{ method: 'GET', path: '/user/lookup/email/:address' },
{ method: 'GET', path: '/event/:id' },
{ method: 'GET', path: '/event/:id/comments' },
{ method: 'POST', path: '/event/:id/comment' },
{ method: 'GET', path: '/map/:location/events' },
{ method: 'GET', path: '/status' },
{ method: 'GET', path: '/very/deeply/nested/route/hello/there' },
{ method: 'GET', path: '/static/*' },
]Puis nous avons envoyé des requêtes aux points d’entrée suivants.
const routes: (Route & { name: string })[] = [
{
name: 'short static',
method: 'GET',
path: '/user',
},
{
name: 'static with same radix',
method: 'GET',
path: '/user/comments',
},
{
name: 'dynamic route',
method: 'GET',
path: '/user/lookup/username/hey',
},
{
name: 'mixed static dynamic',
method: 'GET',
path: '/event/abcd1234/comments',
},
{
name: 'post',
method: 'POST',
path: '/event/abcd1234/comment',
},
{
name: 'long static',
method: 'GET',
path: '/very/deeply/nested/route/hello/there',
},
{
name: 'wildcard',
method: 'GET',
path: '/static/index.html',
},
]Examinons les résultats.
Sur Node.js
Les captures d’écran suivantes présentent les résultats sur Node.js.








Sur Bun
Les captures d’écran suivantes présentent les résultats sur Bun.








Cloudflare Workers
Hono est le plus rapide parmi les routeurs pour Cloudflare Workers comparés ici.
- Machine : Apple MacBook Pro, 32 GiB, M1 Pro
- Scripts : benchmarks/handle-event
Hono x 402,820 ops/sec ±4.78% (80 runs sampled)
itty-router x 212,598 ops/sec ±3.11% (87 runs sampled)
sunder x 297,036 ops/sec ±4.76% (77 runs sampled)
worktop x 197,345 ops/sec ±2.40% (88 runs sampled)
Fastest is Hono
✨ Done in 28.06s.Deno
Hono est le plus rapide parmi les frameworks pour Deno comparés ici.
- Machine : Apple MacBook Pro, 32 GiB, M1 Pro, Deno v1.22.0
- Scripts : benchmarks/deno
- Méthode :
bombardier --fasthttp -d 10s -c 100 'http://localhost:8000/user/lookup/username/foo'
| Framework | Version | Résultats |
|---|---|---|
| Hono | 3.0.0 | Requêtes/seconde : 136112 |
| Fast | 4.0.0-beta.1 | Requêtes/seconde : 103214 |
| Megalo | 0.3.0 | Requêtes/seconde : 64597 |
| Faster | 5.7 | Requêtes/seconde : 54801 |
| oak | 10.5.1 | Requêtes/seconde : 43326 |
| opine | 2.2.0 | Requêtes/seconde : 30700 |
Autre résultat de test de performance : denosaurs/bench
Bun
Hono est l’un des frameworks les plus rapides pour Bun. Vous pouvez le constater dans le test de performance suivant.