diff --git a/README.md b/README.md index 4ca8e81..edd544b 100644 --- a/README.md +++ b/README.md @@ -68,36 +68,36 @@ node ./benchmark [arguments (optional)] * __Machine:__ linux x64 | 4 vCPUs | 15.6GB Mem * __Node:__ `v20.18.1` -* __Run:__ Thu Dec 05 2024 14:49:17 GMT+0000 (Coordinated Universal Time) +* __Run:__ Mon Dec 09 2024 01:57:36 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.1 | ✗ | 46369.6 | 21.06 | 8.27 | -| fastify | 5.1.0 | ✓ | 46315.2 | 21.09 | 8.30 | -| polka | 0.5.2 | ✓ | 46036.0 | 21.22 | 8.21 | -| rayo | 1.4.6 | ✓ | 45401.6 | 21.52 | 8.10 | -| connect | 3.7.0 | ✗ | 45092.0 | 21.68 | 8.04 | -| server-base | 7.1.32 | ✗ | 44644.0 | 21.91 | 7.96 | -| micro | 10.0.1 | ✗ | 44632.8 | 21.90 | 7.96 | -| polkadot | 1.0.0 | ✗ | 44587.2 | 21.93 | 7.95 | -| server-base-router | 7.1.32 | ✓ | 44328.0 | 22.06 | 7.91 | -| 0http | 3.5.3 | ✓ | 44194.4 | 22.13 | 7.88 | -| connect-router | 1.3.8 | ✓ | 41908.0 | 23.36 | 7.47 | -| micro-route | 2.5.0 | ✓ | 41536.8 | 23.57 | 7.41 | -| adonisjs | 7.3.0 | ✓ | 41030.4 | 23.87 | 7.32 | -| h3 | 1.13.0 | ✗ | 40880.8 | 23.96 | 7.29 | -| hono | 4.6.12 | ✓ | 40224.8 | 24.35 | 7.17 | -| restana | 4.9.9 | ✓ | 39075.2 | 25.09 | 6.97 | -| h3-router | 1.13.0 | ✓ | 38669.6 | 25.37 | 6.90 | -| koa | 2.15.3 | ✗ | 37104.0 | 26.45 | 6.62 | -| koa-isomorphic-router | 1.0.1 | ✓ | 34642.0 | 28.36 | 6.18 | -| restify | 11.1.0 | ✓ | 34602.8 | 28.40 | 6.24 | -| take-five | 2.0.0 | ✓ | 34304.8 | 28.64 | 12.33 | -| koa-router | 13.1.0 | ✓ | 33248.0 | 29.58 | 5.93 | -| hapi | 21.3.12 | ✓ | 31761.2 | 30.97 | 5.66 | -| microrouter | 3.1.3 | ✓ | 29769.2 | 33.09 | 5.31 | -| fastify-big-json | 5.1.0 | ✓ | 11801.6 | 84.18 | 135.80 | -| express | 5.0.1 | ✓ | 9836.9 | 101.07 | 1.75 | -| express-with-middlewares | 5.0.1 | ✓ | 9367.5 | 106.13 | 3.48 | +| bare | v20.18.1 | ✗ | 47969.6 | 20.37 | 8.55 | +| fastify | 5.1.0 | ✓ | 47085.6 | 20.73 | 8.44 | +| connect | 3.7.0 | ✗ | 46552.8 | 20.97 | 8.30 | +| rayo | 1.4.6 | ✓ | 46131.2 | 21.16 | 8.23 | +| polka | 0.5.2 | ✓ | 46102.4 | 21.18 | 8.22 | +| server-base | 7.1.32 | ✗ | 45595.2 | 21.42 | 8.13 | +| polkadot | 1.0.0 | ✗ | 45545.6 | 21.46 | 8.12 | +| server-base-router | 7.1.32 | ✓ | 45536.8 | 21.42 | 8.12 | +| micro | 10.0.1 | ✗ | 44764.0 | 21.84 | 7.98 | +| 0http | 3.5.3 | ✓ | 44570.4 | 21.96 | 7.95 | +| connect-router | 1.3.8 | ✓ | 42907.2 | 22.80 | 7.65 | +| h3 | 1.13.0 | ✗ | 42856.0 | 22.84 | 7.64 | +| adonisjs | 7.3.0 | ✓ | 42537.6 | 23.00 | 7.59 | +| micro-route | 2.5.0 | ✓ | 41788.8 | 23.44 | 7.45 | +| h3-router | 1.13.0 | ✓ | 41465.6 | 23.63 | 7.39 | +| hono | 4.6.13 | ✓ | 40682.4 | 24.05 | 7.26 | +| restana | 4.9.9 | ✓ | 39013.6 | 25.13 | 6.96 | +| koa | 2.15.3 | ✗ | 37448.2 | 26.19 | 6.68 | +| take-five | 2.0.0 | ✓ | 36091.2 | 27.19 | 12.97 | +| koa-isomorphic-router | 1.0.1 | ✓ | 35534.2 | 27.64 | 6.34 | +| restify | 11.1.0 | ✓ | 35288.2 | 27.84 | 6.36 | +| koa-router | 13.1.0 | ✓ | 34144.4 | 28.78 | 6.09 | +| hapi | 21.3.12 | ✓ | 31776.6 | 30.97 | 5.67 | +| microrouter | 3.1.3 | ✓ | 30701.6 | 32.06 | 5.48 | +| fastify-big-json | 5.1.0 | ✓ | 11860.2 | 83.78 | 136.45 | +| express | 5.0.1 | ✓ | 10198.8 | 97.44 | 1.82 | +| express-with-middlewares | 5.0.1 | ✓ | 9466.5 | 105.03 | 3.52 | | trpc-router | 10.45.2 | ✓ | N/A | N/A | N/A | diff --git a/benchmark-results.json b/benchmark-results.json index 7bf6c28..337fe35 100644 --- a/benchmark-results.json +++ b/benchmark-results.json @@ -1 +1 @@ -[{"name":"bare","version":"v20.18.1","requests":"46369.6","latency":"21.06","throughput":"8.27"},{"name":"fastify","version":"5.1.0","hasRouter":true,"requests":"46315.2","latency":"21.09","throughput":"8.30"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"46036.0","latency":"21.22","throughput":"8.21"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"45401.6","latency":"21.52","throughput":"8.10"},{"name":"connect","version":"3.7.0","requests":"45092.0","latency":"21.68","throughput":"8.04"},{"name":"server-base","version":"7.1.32","requests":"44644.0","latency":"21.91","throughput":"7.96"},{"name":"micro","version":"10.0.1","requests":"44632.8","latency":"21.90","throughput":"7.96"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"44587.2","latency":"21.93","throughput":"7.95"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"44328.0","latency":"22.06","throughput":"7.91"},{"name":"0http","version":"3.5.3","hasRouter":true,"requests":"44194.4","latency":"22.13","throughput":"7.88"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"41908.0","latency":"23.36","throughput":"7.47"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"41536.8","latency":"23.57","throughput":"7.41"},{"name":"adonisjs","version":"7.3.0","hasRouter":true,"requests":"41030.4","latency":"23.87","throughput":"7.32"},{"name":"h3","version":"1.13.0","requests":"40880.8","latency":"23.96","throughput":"7.29"},{"name":"hono","version":"4.6.12","hasRouter":true,"requests":"40224.8","latency":"24.35","throughput":"7.17"},{"name":"restana","version":"4.9.9","hasRouter":true,"requests":"39075.2","latency":"25.09","throughput":"6.97"},{"name":"h3-router","version":"1.13.0","hasRouter":true,"requests":"38669.6","latency":"25.37","throughput":"6.90"},{"name":"koa","version":"2.15.3","requests":"37104.0","latency":"26.45","throughput":"6.62"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"34642.0","latency":"28.36","throughput":"6.18"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"34602.8","latency":"28.40","throughput":"6.24"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"34304.8","latency":"28.64","throughput":"12.33"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"33248.0","latency":"29.58","throughput":"5.93"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"31761.2","latency":"30.97","throughput":"5.66"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"29769.2","latency":"33.09","throughput":"5.31"},{"name":"fastify-big-json","version":"5.1.0","hasRouter":true,"requests":"11801.6","latency":"84.18","throughput":"135.80"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"9836.9","latency":"101.07","throughput":"1.75"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9367.5","latency":"106.13","throughput":"3.48"},{"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":"bare","version":"v20.18.1","requests":"47969.6","latency":"20.37","throughput":"8.55"},{"name":"fastify","version":"5.1.0","hasRouter":true,"requests":"47085.6","latency":"20.73","throughput":"8.44"},{"name":"connect","version":"3.7.0","requests":"46552.8","latency":"20.97","throughput":"8.30"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"46131.2","latency":"21.16","throughput":"8.23"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"46102.4","latency":"21.18","throughput":"8.22"},{"name":"server-base","version":"7.1.32","requests":"45595.2","latency":"21.42","throughput":"8.13"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"45545.6","latency":"21.46","throughput":"8.12"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"45536.8","latency":"21.42","throughput":"8.12"},{"name":"micro","version":"10.0.1","requests":"44764.0","latency":"21.84","throughput":"7.98"},{"name":"0http","version":"3.5.3","hasRouter":true,"requests":"44570.4","latency":"21.96","throughput":"7.95"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"42907.2","latency":"22.80","throughput":"7.65"},{"name":"h3","version":"1.13.0","requests":"42856.0","latency":"22.84","throughput":"7.64"},{"name":"adonisjs","version":"7.3.0","hasRouter":true,"requests":"42537.6","latency":"23.00","throughput":"7.59"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"41788.8","latency":"23.44","throughput":"7.45"},{"name":"h3-router","version":"1.13.0","hasRouter":true,"requests":"41465.6","latency":"23.63","throughput":"7.39"},{"name":"hono","version":"4.6.13","hasRouter":true,"requests":"40682.4","latency":"24.05","throughput":"7.26"},{"name":"restana","version":"4.9.9","hasRouter":true,"requests":"39013.6","latency":"25.13","throughput":"6.96"},{"name":"koa","version":"2.15.3","requests":"37448.2","latency":"26.19","throughput":"6.68"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"36091.2","latency":"27.19","throughput":"12.97"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"35534.2","latency":"27.64","throughput":"6.34"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"35288.2","latency":"27.84","throughput":"6.36"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"34144.4","latency":"28.78","throughput":"6.09"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"31776.6","latency":"30.97","throughput":"5.67"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"30701.6","latency":"32.06","throughput":"5.48"},{"name":"fastify-big-json","version":"5.1.0","hasRouter":true,"requests":"11860.2","latency":"83.78","throughput":"136.45"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"10198.8","latency":"97.44","throughput":"1.82"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9466.5","latency":"105.03","throughput":"3.52"},{"name":"trpc-router","version":"10.45.2","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file