diff --git a/README.md b/README.md index d681a27d..6a01dd03 100644 --- a/README.md +++ b/README.md @@ -69,36 +69,36 @@ node ./benchmark [arguments (optional)] * __Machine:__ linux x64 | 4 vCPUs | 15.6GB Mem * __Node:__ `v20.18.2` -* __Run:__ Mon Feb 03 2025 09:26:10 GMT+0000 (Coordinated Universal Time) +* __Run:__ Mon Feb 10 2025 01:49:59 GMT+0000 (Coordinated Universal Time) * __Method:__ `autocannon -c 100 -d 40 -p 10 localhost:3000` (two rounds; one to warm-up, one to measure) | | Version | Router | Requests/s | Latency (ms) | Throughput/Mb | | :-- | --: | --: | :-: | --: | --: | -| bare | v20.18.2 | ✗ | 47791.2 | 20.44 | 8.52 | -| polka | 0.5.2 | ✓ | 46648.0 | 20.93 | 8.32 | -| polkadot | 1.0.0 | ✗ | 46391.2 | 21.06 | 8.27 | -| fastify | 5.2.1 | ✓ | 46266.4 | 21.11 | 8.29 | -| connect | 3.7.0 | ✗ | 45913.6 | 21.27 | 8.19 | -| server-base-router | 7.1.32 | ✓ | 45567.2 | 21.44 | 8.13 | -| rayo | 1.4.6 | ✓ | 45176.0 | 21.63 | 8.06 | -| 0http | 4.1.0 | ✓ | 45141.6 | 21.66 | 8.05 | -| server-base | 7.1.32 | ✗ | 44826.4 | 21.81 | 7.99 | -| micro | 10.0.1 | ✗ | 44471.2 | 21.98 | 7.93 | -| h3 | 1.14.0 | ✗ | 43591.2 | 22.44 | 7.77 | -| connect-router | 1.3.8 | ✓ | 43149.6 | 22.67 | 7.69 | -| micro-route | 2.5.0 | ✓ | 42744.0 | 22.88 | 7.62 | -| h3-router | 1.14.0 | ✓ | 42338.4 | 23.12 | 7.55 | -| adonisjs | 7.4.0 | ✓ | 42082.4 | 23.26 | 7.50 | -| restana | v5.0.0 | ✓ | 41513.6 | 23.59 | 7.40 | -| hono | 4.6.20 | ✓ | 39740.0 | 24.67 | 6.52 | -| koa | 2.15.3 | ✗ | 37470.6 | 26.19 | 6.68 | -| koa-isomorphic-router | 1.0.1 | ✓ | 35357.4 | 27.78 | 6.31 | -| restify | 11.1.0 | ✓ | 35079.8 | 28.00 | 6.32 | -| take-five | 2.0.0 | ✓ | 34660.2 | 28.35 | 12.46 | -| koa-router | 13.1.0 | ✓ | 32931.8 | 29.86 | 5.87 | -| hapi | 21.3.12 | ✓ | 31328.6 | 31.41 | 5.59 | -| microrouter | 3.1.3 | ✓ | 30105.2 | 32.70 | 5.37 | -| fastify-big-json | 5.2.1 | ✓ | 11801.6 | 84.18 | 135.79 | -| express | 5.0.1 | ✓ | 10524.4 | 94.44 | 1.88 | -| express-with-middlewares | 5.0.1 | ✓ | 9444.9 | 105.28 | 3.51 | +| fastify | 5.2.1 | ✓ | 48440.8 | 20.15 | 8.68 | +| bare | v20.18.2 | ✗ | 48114.4 | 20.29 | 8.58 | +| rayo | 1.4.6 | ✓ | 47088.8 | 20.73 | 8.40 | +| polka | 0.5.2 | ✓ | 46978.4 | 20.78 | 8.38 | +| polkadot | 1.0.0 | ✗ | 46848.8 | 20.85 | 8.36 | +| server-base-router | 7.1.32 | ✓ | 46481.6 | 21.00 | 8.29 | +| connect | 3.7.0 | ✗ | 46210.4 | 21.14 | 8.24 | +| 0http | 4.1.0 | ✓ | 46050.4 | 21.22 | 8.21 | +| server-base | 7.1.32 | ✗ | 45738.4 | 21.37 | 8.16 | +| micro | 10.0.1 | ✗ | 45225.6 | 21.61 | 8.07 | +| connect-router | 1.3.8 | ✓ | 43334.4 | 22.57 | 7.73 | +| micro-route | 2.5.0 | ✓ | 43301.6 | 22.58 | 7.72 | +| h3 | 1.15.0 | ✗ | 43218.4 | 22.64 | 7.71 | +| adonisjs | 7.4.0 | ✓ | 42939.2 | 22.78 | 7.66 | +| h3-router | 1.15.0 | ✓ | 41656.0 | 23.51 | 7.43 | +| restana | v5.0.0 | ✓ | 40768.8 | 24.03 | 7.27 | +| hono | 4.7.0 | ✓ | 40049.6 | 24.46 | 6.57 | +| koa | 2.15.3 | ✗ | 36661.8 | 26.77 | 6.54 | +| restify | 11.1.0 | ✓ | 36501.8 | 26.89 | 6.58 | +| take-five | 2.0.0 | ✓ | 35809.8 | 27.43 | 12.87 | +| koa-isomorphic-router | 1.0.1 | ✓ | 34607.0 | 28.39 | 6.17 | +| koa-router | 13.1.0 | ✓ | 33751.2 | 29.12 | 6.02 | +| hapi | 21.3.12 | ✓ | 31507.0 | 31.23 | 5.62 | +| microrouter | 3.1.3 | ✓ | 30988.0 | 31.76 | 5.53 | +| fastify-big-json | 5.2.1 | ✓ | 11960.6 | 83.05 | 137.61 | +| express | 5.0.1 | ✓ | 10467.0 | 94.95 | 1.87 | +| express-with-middlewares | 5.0.1 | ✓ | 9701.6 | 102.47 | 3.61 | | trpc-router | 10.45.2 | ✓ | N/A | N/A | N/A | diff --git a/benchmark-results.json b/benchmark-results.json index 2654f3f9..3974b784 100644 --- a/benchmark-results.json +++ b/benchmark-results.json @@ -1 +1 @@ -[{"name":"bare","version":"v20.18.2","requests":"47791.2","latency":"20.44","throughput":"8.52"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"46648.0","latency":"20.93","throughput":"8.32"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"46391.2","latency":"21.06","throughput":"8.27"},{"name":"fastify","version":"5.2.1","hasRouter":true,"requests":"46266.4","latency":"21.11","throughput":"8.29"},{"name":"connect","version":"3.7.0","requests":"45913.6","latency":"21.27","throughput":"8.19"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"45567.2","latency":"21.44","throughput":"8.13"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"45176.0","latency":"21.63","throughput":"8.06"},{"name":"0http","version":"4.1.0","hasRouter":true,"requests":"45141.6","latency":"21.66","throughput":"8.05"},{"name":"server-base","version":"7.1.32","requests":"44826.4","latency":"21.81","throughput":"7.99"},{"name":"micro","version":"10.0.1","requests":"44471.2","latency":"21.98","throughput":"7.93"},{"name":"h3","version":"1.14.0","requests":"43591.2","latency":"22.44","throughput":"7.77"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"43149.6","latency":"22.67","throughput":"7.69"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"42744.0","latency":"22.88","throughput":"7.62"},{"name":"h3-router","version":"1.14.0","hasRouter":true,"requests":"42338.4","latency":"23.12","throughput":"7.55"},{"name":"adonisjs","version":"7.4.0","hasRouter":true,"requests":"42082.4","latency":"23.26","throughput":"7.50"},{"name":"restana","version":"v5.0.0","hasRouter":true,"requests":"41513.6","latency":"23.59","throughput":"7.40"},{"name":"hono","version":"4.6.20","hasRouter":true,"requests":"39740.0","latency":"24.67","throughput":"6.52"},{"name":"koa","version":"2.15.3","requests":"37470.6","latency":"26.19","throughput":"6.68"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"35357.4","latency":"27.78","throughput":"6.31"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"35079.8","latency":"28.00","throughput":"6.32"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"34660.2","latency":"28.35","throughput":"12.46"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"32931.8","latency":"29.86","throughput":"5.87"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"31328.6","latency":"31.41","throughput":"5.59"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"30105.2","latency":"32.70","throughput":"5.37"},{"name":"fastify-big-json","version":"5.2.1","hasRouter":true,"requests":"11801.6","latency":"84.18","throughput":"135.79"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"10524.4","latency":"94.44","throughput":"1.88"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9444.9","latency":"105.28","throughput":"3.51"},{"name":"trpc-router","version":"10.45.2","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file +[{"name":"fastify","version":"5.2.1","hasRouter":true,"requests":"48440.8","latency":"20.15","throughput":"8.68"},{"name":"bare","version":"v20.18.2","requests":"48114.4","latency":"20.29","throughput":"8.58"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"47088.8","latency":"20.73","throughput":"8.40"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"46978.4","latency":"20.78","throughput":"8.38"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"46848.8","latency":"20.85","throughput":"8.36"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"46481.6","latency":"21.00","throughput":"8.29"},{"name":"connect","version":"3.7.0","requests":"46210.4","latency":"21.14","throughput":"8.24"},{"name":"0http","version":"4.1.0","hasRouter":true,"requests":"46050.4","latency":"21.22","throughput":"8.21"},{"name":"server-base","version":"7.1.32","requests":"45738.4","latency":"21.37","throughput":"8.16"},{"name":"micro","version":"10.0.1","requests":"45225.6","latency":"21.61","throughput":"8.07"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"43334.4","latency":"22.57","throughput":"7.73"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"43301.6","latency":"22.58","throughput":"7.72"},{"name":"h3","version":"1.15.0","requests":"43218.4","latency":"22.64","throughput":"7.71"},{"name":"adonisjs","version":"7.4.0","hasRouter":true,"requests":"42939.2","latency":"22.78","throughput":"7.66"},{"name":"h3-router","version":"1.15.0","hasRouter":true,"requests":"41656.0","latency":"23.51","throughput":"7.43"},{"name":"restana","version":"v5.0.0","hasRouter":true,"requests":"40768.8","latency":"24.03","throughput":"7.27"},{"name":"hono","version":"4.7.0","hasRouter":true,"requests":"40049.6","latency":"24.46","throughput":"6.57"},{"name":"koa","version":"2.15.3","requests":"36661.8","latency":"26.77","throughput":"6.54"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"36501.8","latency":"26.89","throughput":"6.58"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"35809.8","latency":"27.43","throughput":"12.87"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"34607.0","latency":"28.39","throughput":"6.17"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"33751.2","latency":"29.12","throughput":"6.02"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"31507.0","latency":"31.23","throughput":"5.62"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"30988.0","latency":"31.76","throughput":"5.53"},{"name":"fastify-big-json","version":"5.2.1","hasRouter":true,"requests":"11960.6","latency":"83.05","throughput":"137.61"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"10467.0","latency":"94.95","throughput":"1.87"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9701.6","latency":"102.47","throughput":"3.61"},{"name":"trpc-router","version":"10.45.2","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file