diff --git a/README.md b/README.md index c61efbbb..ef6d6eaf 100644 --- a/README.md +++ b/README.md @@ -45,36 +45,37 @@ node ./benchmark [arguments (optional)] # Benchmarks * __Machine:__ linux x64 | 4 vCPUs | 15.6GB Mem -* __Node:__ `v20.17.0` -* __Run:__ Mon Oct 14 2024 01:49:21 GMT+0000 (Coordinated Universal Time) +* __Node:__ `v20.18.0` +* __Run:__ Mon Oct 21 2024 01:50:53 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.0.0 | ✓ | 46836.0 | 20.84 | 8.40 | -| polka | 0.5.2 | ✓ | 45924.0 | 21.27 | 8.19 | -| bare | v20.17.0 | ✗ | 45556.8 | 21.45 | 8.12 | -| rayo | 1.4.6 | ✓ | 45484.8 | 21.48 | 8.11 | -| server-base-router | 7.1.32 | ✓ | 44819.2 | 21.82 | 7.99 | -| server-base | 7.1.32 | ✗ | 44659.2 | 21.90 | 7.96 | -| polkadot | 1.0.0 | ✗ | 44528.0 | 21.96 | 7.94 | -| micro | 10.0.1 | ✗ | 44251.2 | 22.10 | 7.89 | -| connect | 3.7.0 | ✗ | 43463.2 | 22.51 | 7.75 | -| 0http | 3.5.3 | ✓ | 42397.6 | 23.09 | 7.56 | -| connect-router | 1.3.8 | ✓ | 41432.8 | 23.64 | 7.39 | -| micro-route | 2.5.0 | ✓ | 41028.8 | 23.87 | 7.32 | -| hono | 4.6.4 | ✓ | 39308.0 | 24.93 | 7.01 | -| h3-router | 1.13.0 | ✓ | 38413.6 | 25.54 | 6.85 | -| restana | 4.9.9 | ✓ | 38394.4 | 25.55 | 6.85 | -| h3 | 1.13.0 | ✗ | 38191.2 | 25.68 | 6.81 | -| koa | 2.15.3 | ✗ | 36278.6 | 27.06 | 6.47 | -| restify | 11.1.0 | ✓ | 33929.0 | 28.96 | 6.12 | -| take-five | 2.0.0 | ✓ | 33845.2 | 29.04 | 12.17 | -| koa-isomorphic-router | 1.0.1 | ✓ | 33290.0 | 29.54 | 5.94 | -| koa-router | 12.0.1 | ✓ | 32769.8 | 30.02 | 5.84 | -| hapi | 21.3.10 | ✓ | 30121.6 | 32.69 | 5.37 | -| microrouter | 3.1.3 | ✓ | 29785.6 | 33.06 | 5.31 | -| fastify-big-json | 5.0.0 | ✓ | 11744.8 | 84.57 | 135.13 | -| express | 5.0.1 | ✓ | 9647.9 | 103.07 | 1.72 | -| express-with-middlewares | 5.0.1 | ✓ | 8886.1 | 111.90 | 3.30 | +| bare | v20.18.0 | ✗ | 47996.0 | 20.38 | 8.56 | +| connect | 3.7.0 | ✗ | 47068.8 | 20.73 | 8.39 | +| fastify | 5.0.0 | ✓ | 45716.0 | 21.38 | 8.20 | +| polka | 0.5.2 | ✓ | 45256.8 | 21.60 | 8.07 | +| 0http | 3.5.3 | ✓ | 45016.8 | 21.72 | 8.03 | +| rayo | 1.4.6 | ✓ | 45005.6 | 21.72 | 8.03 | +| micro | 10.0.1 | ✗ | 44466.4 | 21.98 | 7.93 | +| polkadot | 1.0.0 | ✗ | 44140.8 | 22.15 | 7.87 | +| server-base-router | 7.1.32 | ✓ | 43988.0 | 22.23 | 7.84 | +| server-base | 7.1.32 | ✗ | 43931.2 | 22.26 | 7.83 | +| connect-router | 1.3.8 | ✓ | 43366.4 | 22.56 | 7.73 | +| micro-route | 2.5.0 | ✓ | 41891.2 | 23.37 | 7.47 | +| adonisjs | 7.2.5 | ✓ | 41252.0 | 23.74 | 7.36 | +| h3 | 1.13.0 | ✗ | 41160.8 | 23.80 | 7.34 | +| hono | 4.6.5 | ✓ | 40401.6 | 24.25 | 7.21 | +| h3-router | 1.13.0 | ✓ | 40117.6 | 24.43 | 7.15 | +| koa | 2.15.3 | ✗ | 37017.4 | 26.52 | 6.60 | +| koa-isomorphic-router | 1.0.1 | ✓ | 35430.4 | 27.72 | 6.32 | +| restana | 4.9.9 | ✓ | 35255.6 | 27.86 | 6.29 | +| take-five | 2.0.0 | ✓ | 34075.4 | 28.84 | 12.25 | +| koa-router | 12.0.1 | ✓ | 33737.2 | 29.13 | 6.02 | +| restify | 11.1.0 | ✓ | 33166.8 | 29.65 | 5.98 | +| hapi | 21.3.10 | ✓ | 31422.2 | 31.32 | 5.60 | +| microrouter | 3.1.3 | ✓ | 29116.4 | 33.84 | 5.19 | +| fastify-big-json | 5.0.0 | ✓ | 12064.6 | 82.31 | 138.81 | +| express | 5.0.1 | ✓ | 10094.8 | 98.47 | 1.80 | +| express-with-middlewares | 5.0.1 | ✓ | 9294.8 | 106.97 | 3.46 | | trpc-router | 10.45.2 | ✓ | N/A | N/A | N/A | diff --git a/benchmark-results.json b/benchmark-results.json index d79cf4d4..94c284f9 100644 --- a/benchmark-results.json +++ b/benchmark-results.json @@ -1 +1 @@ -[{"name":"fastify","version":"5.0.0","hasRouter":true,"requests":"46836.0","latency":"20.84","throughput":"8.40"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"45924.0","latency":"21.27","throughput":"8.19"},{"name":"bare","version":"v20.17.0","requests":"45556.8","latency":"21.45","throughput":"8.12"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"45484.8","latency":"21.48","throughput":"8.11"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"44819.2","latency":"21.82","throughput":"7.99"},{"name":"server-base","version":"7.1.32","requests":"44659.2","latency":"21.90","throughput":"7.96"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"44528.0","latency":"21.96","throughput":"7.94"},{"name":"micro","version":"10.0.1","requests":"44251.2","latency":"22.10","throughput":"7.89"},{"name":"connect","version":"3.7.0","requests":"43463.2","latency":"22.51","throughput":"7.75"},{"name":"0http","version":"3.5.3","hasRouter":true,"requests":"42397.6","latency":"23.09","throughput":"7.56"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"41432.8","latency":"23.64","throughput":"7.39"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"41028.8","latency":"23.87","throughput":"7.32"},{"name":"hono","version":"4.6.4","hasRouter":true,"requests":"39308.0","latency":"24.93","throughput":"7.01"},{"name":"h3-router","version":"1.13.0","hasRouter":true,"requests":"38413.6","latency":"25.54","throughput":"6.85"},{"name":"restana","version":"4.9.9","hasRouter":true,"requests":"38394.4","latency":"25.55","throughput":"6.85"},{"name":"h3","version":"1.13.0","requests":"38191.2","latency":"25.68","throughput":"6.81"},{"name":"koa","version":"2.15.3","requests":"36278.6","latency":"27.06","throughput":"6.47"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"33929.0","latency":"28.96","throughput":"6.12"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"33845.2","latency":"29.04","throughput":"12.17"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"33290.0","latency":"29.54","throughput":"5.94"},{"name":"koa-router","version":"12.0.1","hasRouter":true,"requests":"32769.8","latency":"30.02","throughput":"5.84"},{"name":"hapi","version":"21.3.10","hasRouter":true,"requests":"30121.6","latency":"32.69","throughput":"5.37"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"29785.6","latency":"33.06","throughput":"5.31"},{"name":"fastify-big-json","version":"5.0.0","hasRouter":true,"requests":"11744.8","latency":"84.57","throughput":"135.13"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"9647.9","latency":"103.07","throughput":"1.72"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"8886.1","latency":"111.90","throughput":"3.30"},{"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":"47996.0","latency":"20.38","throughput":"8.56"},{"name":"connect","version":"3.7.0","requests":"47068.8","latency":"20.73","throughput":"8.39"},{"name":"fastify","version":"5.0.0","hasRouter":true,"requests":"45716.0","latency":"21.38","throughput":"8.20"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"45256.8","latency":"21.60","throughput":"8.07"},{"name":"0http","version":"3.5.3","hasRouter":true,"requests":"45016.8","latency":"21.72","throughput":"8.03"},{"name":"rayo","version":"1.4.6","hasRouter":true,"requests":"45005.6","latency":"21.72","throughput":"8.03"},{"name":"micro","version":"10.0.1","requests":"44466.4","latency":"21.98","throughput":"7.93"},{"name":"polkadot","version":"1.0.0","hasRouter":false,"requests":"44140.8","latency":"22.15","throughput":"7.87"},{"name":"server-base-router","version":"7.1.32","hasRouter":true,"requests":"43988.0","latency":"22.23","throughput":"7.84"},{"name":"server-base","version":"7.1.32","requests":"43931.2","latency":"22.26","throughput":"7.83"},{"name":"connect-router","version":"1.3.8","hasRouter":true,"requests":"43366.4","latency":"22.56","throughput":"7.73"},{"name":"micro-route","version":"2.5.0","hasRouter":true,"requests":"41891.2","latency":"23.37","throughput":"7.47"},{"name":"adonisjs","version":"7.2.5","hasRouter":true,"requests":"41252.0","latency":"23.74","throughput":"7.36"},{"name":"h3","version":"1.13.0","requests":"41160.8","latency":"23.80","throughput":"7.34"},{"name":"hono","version":"4.6.5","hasRouter":true,"requests":"40401.6","latency":"24.25","throughput":"7.21"},{"name":"h3-router","version":"1.13.0","hasRouter":true,"requests":"40117.6","latency":"24.43","throughput":"7.15"},{"name":"koa","version":"2.15.3","requests":"37017.4","latency":"26.52","throughput":"6.60"},{"name":"koa-isomorphic-router","version":"1.0.1","hasRouter":true,"requests":"35430.4","latency":"27.72","throughput":"6.32"},{"name":"restana","version":"4.9.9","hasRouter":true,"requests":"35255.6","latency":"27.86","throughput":"6.29"},{"name":"take-five","version":"2.0.0","hasRouter":true,"requests":"34075.4","latency":"28.84","throughput":"12.25"},{"name":"koa-router","version":"12.0.1","hasRouter":true,"requests":"33737.2","latency":"29.13","throughput":"6.02"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"33166.8","latency":"29.65","throughput":"5.98"},{"name":"hapi","version":"21.3.10","hasRouter":true,"requests":"31422.2","latency":"31.32","throughput":"5.60"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"29116.4","latency":"33.84","throughput":"5.19"},{"name":"fastify-big-json","version":"5.0.0","hasRouter":true,"requests":"12064.6","latency":"82.31","throughput":"138.81"},{"name":"express","version":"5.0.1","hasRouter":true,"requests":"10094.8","latency":"98.47","throughput":"1.80"},{"name":"express-with-middlewares","version":"5.0.1","hasRouter":true,"requests":"9294.8","latency":"106.97","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