diff --git a/README.md b/README.md index 6b15c8d2..95ae60bf 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.0` -* __Run:__ Wed Nov 20 2024 14:16:48 GMT+0000 (Coordinated Universal Time) +* __Run:__ Wed Nov 20 2024 16:48:03 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 | | :-- | --: | --: | :-: | --: | --: | -| fastify | 5.1.0 | ✓ | 47024.8 | 20.75 | 8.43 | -| bare | v20.18.0 | ✗ | 47012.0 | 20.77 | 8.38 | -| server-base | 7.1.32 | ✗ | 46497.6 | 21.02 | 8.29 | -| rayo | 1.4.6 | ✓ | 46403.2 | 21.06 | 8.28 | -| connect | 3.7.0 | ✗ | 46012.0 | 21.22 | 8.21 | -| server-base-router | 7.1.32 | ✓ | 45948.0 | 21.23 | 8.19 | -| polka | 0.5.2 | ✓ | 45917.6 | 21.24 | 8.19 | -| micro | 10.0.1 | ✗ | 45882.4 | 21.29 | 8.18 | -| 0http | 3.5.3 | ✓ | 45280.8 | 21.59 | 8.08 | -| polkadot | 1.0.0 | ✗ | 44972.8 | 21.74 | 8.02 | -| connect-router | 1.3.8 | ✓ | 43385.6 | 22.55 | 7.74 | -| micro-route | 2.5.0 | ✓ | 42613.6 | 22.95 | 7.60 | -| h3 | 1.13.0 | ✗ | 42283.2 | 23.16 | 7.54 | -| adonisjs | 7.2.5 | ✓ | 41852.0 | 23.41 | 7.46 | -| h3-router | 1.13.0 | ✓ | 41832.8 | 23.41 | 7.46 | -| hono | 4.6.11 | ✓ | 40170.4 | 24.40 | 7.16 | -| restana | 4.9.9 | ✓ | 39092.0 | 25.09 | 6.97 | -| koa | 2.15.3 | ✗ | 37084.2 | 26.44 | 6.61 | -| take-five | 2.0.0 | ✓ | 35421.4 | 27.74 | 12.73 | -| koa-isomorphic-router | 1.0.1 | ✓ | 34976.4 | 28.07 | 6.24 | -| restify | 11.1.0 | ✓ | 34900.4 | 28.14 | 6.29 | -| hapi | 21.3.12 | ✓ | 31718.2 | 31.01 | 5.66 | -| microrouter | 3.1.3 | ✓ | 30120.4 | 32.69 | 5.37 | -| fastify-big-json | 5.1.0 | ✓ | 12070.6 | 82.28 | 138.87 | -| express | 5.0.1 | ✓ | 9969.2 | 99.72 | 1.78 | -| express-with-middlewares | 5.0.1 | ✓ | 9322.9 | 106.65 | 3.47 | -| koa-router | 13.0.1 | ✓ | N/A | N/A | N/A | +| bare | v20.18.0 | ✗ | 48138.4 | 20.31 | 8.59 | +| polka | 0.5.2 | ✓ | 46678.4 | 20.92 | 8.32 | +| fastify | 5.1.0 | ✓ | 46362.4 | 21.06 | 8.31 | +| connect | 3.7.0 | ✗ | 46058.4 | 21.21 | 8.21 | +| rayo | 1.4.6 | ✓ | 46029.6 | 21.20 | 8.21 | +| server-base | 7.1.32 | ✗ | 45812.8 | 21.30 | 8.17 | +| server-base-router | 7.1.32 | ✓ | 45671.2 | 21.38 | 8.14 | +| polkadot | 1.0.0 | ✗ | 45204.0 | 21.62 | 8.06 | +| micro | 10.0.1 | ✗ | 45053.6 | 21.70 | 8.03 | +| connect-router | 1.3.8 | ✓ | 42852.8 | 22.83 | 7.64 | +| h3 | 1.13.0 | ✗ | 42776.0 | 22.88 | 7.63 | +| 0http | 3.5.3 | ✓ | 42246.4 | 23.18 | 7.53 | +| micro-route | 2.5.0 | ✓ | 41967.2 | 23.33 | 7.48 | +| adonisjs | 7.2.5 | ✓ | 41282.4 | 23.73 | 7.36 | +| h3-router | 1.13.0 | ✓ | 41268.8 | 23.73 | 7.36 | +| hono | 4.6.11 | ✓ | 40347.2 | 24.28 | 7.19 | +| restana | 4.9.9 | ✓ | 37565.6 | 26.13 | 6.70 | +| koa | 2.15.3 | ✗ | 36857.0 | 26.63 | 6.57 | +| take-five | 2.0.0 | ✓ | 35407.8 | 27.74 | 12.73 | +| koa-isomorphic-router | 1.0.1 | ✓ | 34864.2 | 28.17 | 6.22 | +| restify | 11.1.0 | ✓ | 34828.0 | 28.21 | 6.28 | +| koa-router | 13.1.0 | ✓ | 33419.4 | 29.44 | 5.96 | +| hapi | 21.3.12 | ✓ | 32162.8 | 30.58 | 5.74 | +| microrouter | 3.1.3 | ✓ | 30468.0 | 32.31 | 5.43 | +| fastify-big-json | 5.1.0 | ✓ | 11977.4 | 82.92 | 137.81 | +| express | 5.0.1 | ✓ | 9946.5 | 99.96 | 1.77 | +| express-with-middlewares | 5.0.1 | ✓ | 9301.0 | 106.89 | 3.46 | | trpc-router | 10.45.2 | ✓ | N/A | N/A | N/A | diff --git a/benchmark-results.json b/benchmark-results.json index de69d009..4379fc10 100644 --- a/benchmark-results.json +++ b/benchmark-results.json @@ -1 +1 @@ -[{"name":"fastify","version":"5.1.0","hasRouter":true,"requests":"47024.8","latency":"20.75","throughput":"8.43"},{"name":"bare","version":"v20.18.0","requests":"47012.0","latency":"20.77","throughput":"8.38"},{"name":"server-base","version":"7.1.32","requests":"46497.6","latency":"21.02","throughput":"8.29"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"46403.2","latency":"21.06","throughput":"8.28"},{"name":"connect","version":"3.7.0","requests":"46012.0","latency":"21.22","throughput":"8.21"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"45948.0","latency":"21.23","throughput":"8.19"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"45917.6","latency":"21.24","throughput":"8.19"},{"name":"micro","version":"10.0.1","requests":"45882.4","latency":"21.29","throughput":"8.18"},{"name":"0http","version":"3.5.3","hasRouter":true,"requests":"45280.8","latency":"21.59","throughput":"8.08"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"44972.8","latency":"21.74","throughput":"8.02"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"43385.6","latency":"22.55","throughput":"7.74"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"42613.6","latency":"22.95","throughput":"7.60"},{"name":"h3","version":"1.13.0","requests":"42283.2","latency":"23.16","throughput":"7.54"},{"name":"adonisjs","version":"7.2.5","hasRouter":true,"requests":"41852.0","latency":"23.41","throughput":"7.46"},{"name":"h3-router","version":"1.13.0","hasRouter":true,"requests":"41832.8","latency":"23.41","throughput":"7.46"},{"name":"hono","version":"4.6.11","hasRouter":true,"requests":"40170.4","latency":"24.40","throughput":"7.16"},{"name":"restana","version":"4.9.9","hasRouter":true,"requests":"39092.0","latency":"25.09","throughput":"6.97"},{"name":"koa","version":"2.15.3","requests":"37084.2","latency":"26.44","throughput":"6.61"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"35421.4","latency":"27.74","throughput":"12.73"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"34976.4","latency":"28.07","throughput":"6.24"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"34900.4","latency":"28.14","throughput":"6.29"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"31718.2","latency":"31.01","throughput":"5.66"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"30120.4","latency":"32.69","throughput":"5.37"},{"name":"fastify-big-json","version":"5.1.0","hasRouter":true,"requests":"12070.6","latency":"82.28","throughput":"138.87"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"9969.2","latency":"99.72","throughput":"1.78"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9322.9","latency":"106.65","throughput":"3.47"},{"name":"koa-router","version":"13.0.1","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"},{"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.0","requests":"48138.4","latency":"20.31","throughput":"8.59"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"46678.4","latency":"20.92","throughput":"8.32"},{"name":"fastify","version":"5.1.0","hasRouter":true,"requests":"46362.4","latency":"21.06","throughput":"8.31"},{"name":"connect","version":"3.7.0","requests":"46058.4","latency":"21.21","throughput":"8.21"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"46029.6","latency":"21.20","throughput":"8.21"},{"name":"server-base","version":"7.1.32","requests":"45812.8","latency":"21.30","throughput":"8.17"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"45671.2","latency":"21.38","throughput":"8.14"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"45204.0","latency":"21.62","throughput":"8.06"},{"name":"micro","version":"10.0.1","requests":"45053.6","latency":"21.70","throughput":"8.03"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"42852.8","latency":"22.83","throughput":"7.64"},{"name":"h3","version":"1.13.0","requests":"42776.0","latency":"22.88","throughput":"7.63"},{"name":"0http","version":"3.5.3","hasRouter":true,"requests":"42246.4","latency":"23.18","throughput":"7.53"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"41967.2","latency":"23.33","throughput":"7.48"},{"name":"adonisjs","version":"7.2.5","hasRouter":true,"requests":"41282.4","latency":"23.73","throughput":"7.36"},{"name":"h3-router","version":"1.13.0","hasRouter":true,"requests":"41268.8","latency":"23.73","throughput":"7.36"},{"name":"hono","version":"4.6.11","hasRouter":true,"requests":"40347.2","latency":"24.28","throughput":"7.19"},{"name":"restana","version":"4.9.9","hasRouter":true,"requests":"37565.6","latency":"26.13","throughput":"6.70"},{"name":"koa","version":"2.15.3","requests":"36857.0","latency":"26.63","throughput":"6.57"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"35407.8","latency":"27.74","throughput":"12.73"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"34864.2","latency":"28.17","throughput":"6.22"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"34828.0","latency":"28.21","throughput":"6.28"},{"name":"koa-router","version":"13.1.0","hasRouter":true,"requests":"33419.4","latency":"29.44","throughput":"5.96"},{"name":"hapi","version":"21.3.12","hasRouter":true,"requests":"32162.8","latency":"30.58","throughput":"5.74"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"30468.0","latency":"32.31","throughput":"5.43"},{"name":"fastify-big-json","version":"5.1.0","hasRouter":true,"requests":"11977.4","latency":"82.92","throughput":"137.81"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"9946.5","latency":"99.96","throughput":"1.77"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9301.0","latency":"106.89","throughput":"3.46"},{"name":"trpc-router","version":"10.45.2","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file