Benchmarks
Benchmarks sind nur Benchmarks, aber sie sind uns wichtig.
Router
Wir haben die Geschwindigkeit mehrerer JavaScript-Router gemessen. Beispielsweise ist find-my-way ein sehr schneller Router, der in Fastify verwendet wird.
- @medley/router
- find-my-way
- koa-tree-router
- trek-router
- express (einschließlich Anfrageverarbeitung)
- koa-router
Zunächst haben wir die folgenden Routen in jedem Router registriert. Sie ähneln Routen aus realen Anwendungen.
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/*' },
]Anschließend haben wir Anfragen an die folgenden Endpunkte gesendet.
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',
},
]Sehen wir uns die Ergebnisse an.
Auf Node.js
Die folgenden Screenshots zeigen die Ergebnisse auf Node.js.








Auf Bun
Die folgenden Screenshots zeigen die Ergebnisse auf Bun.








Cloudflare Workers
Im Vergleich zu anderen Routern für Cloudflare Workers ist Hono am schnellsten.
- Rechner: Apple MacBook Pro, 32 GiB, M1 Pro
- Skripte: 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
Im Vergleich zu anderen Frameworks für Deno ist Hono am schnellsten.
- Rechner: Apple MacBook Pro, 32 GiB, M1 Pro, Deno v1.22.0
- Skripte: benchmarks/deno
- Methode:
bombardier --fasthttp -d 10s -c 100 'http://localhost:8000/user/lookup/username/foo'
| Framework | Version | Ergebnisse |
|---|---|---|
| Hono | 3.0.0 | Anfragen/Sekunde: 136112 |
| Fast | 4.0.0-beta.1 | Anfragen/Sekunde: 103214 |
| Megalo | 0.3.0 | Anfragen/Sekunde: 64597 |
| Faster | 5.7 | Anfragen/Sekunde: 54801 |
| oak | 10.5.1 | Anfragen/Sekunde: 43326 |
| opine | 2.2.0 | Anfragen/Sekunde: 30700 |
Ein weiteres Benchmark-Ergebnis: denosaurs/bench
Bun
Hono gehört zu den schnellsten Frameworks für Bun. Das kannst du im folgenden Benchmark sehen.