From 05f5ea91b44d71fd414c493198cf905dc23d286d Mon Sep 17 00:00:00 2001 From: Matteo Pietro Dazzi Date: Thu, 30 Jul 2026 12:24:55 +0200 Subject: [PATCH] refactor(benchmark-results): emit numeric values instead of strings The output JSON now stores requests, latency, and throughput as numbers (null for missing values) using the same decimal precision as before, unblocking consumers that rely on numeric JSON. --- benchmark-compare.js | 8 ++++---- benchmark-results.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/benchmark-compare.js b/benchmark-compare.js index 263e013a..1c0ae15a 100644 --- a/benchmark-compare.js +++ b/benchmark-compare.js @@ -101,7 +101,7 @@ function compareResults (markdown) { }).sort((a, b) => parseFloat(b.requests.mean) - parseFloat(a.requests.mean)) const outputResults = [] - const formatThroughput = throughput => throughput ? (throughput / 1024 / 1024).toFixed(2) : 'N/A' + const round = (value, decimals) => value ? Math.round(value * 10 ** decimals) / 10 ** decimals : null for (const result of results) { const beBold = result.server === 'fastify' @@ -117,9 +117,9 @@ function compareResults (markdown) { name: result.server, version, hasRouter, - requests: requests ? requests.toFixed(1) : 'N/A', - latency: latency ? latency.toFixed(2) : 'N/A', - throughput: formatThroughput(throughput) + requests: round(requests, 1), + latency: round(latency, 2), + throughput: round(throughput / 1024 / 1024, 2) } ) diff --git a/benchmark-results.json b/benchmark-results.json index 8ffed5f8..48ef9df6 100644 --- a/benchmark-results.json +++ b/benchmark-results.json @@ -1 +1 @@ -[{"name":"0http","version":"5.1.0","hasRouter":true,"requests":"54500.8","latency":"17.87","throughput":"9.72"},{"name":"restana","version":"v6.0.1","hasRouter":true,"requests":"49195.2","latency":"19.82","throughput":"12.39"},{"name":"srvx","version":"0.12.1","requests":"48867.2","latency":"20.04","throughput":"7.92"},{"name":"node-http","version":"v24.18.0","requests":"47916.8","latency":"20.43","throughput":"8.54"},{"name":"micro","version":"10.0.1","requests":"47431.2","latency":"20.57","throughput":"8.46"},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":"47279.2","latency":"20.63","throughput":"8.43"},{"name":"connect","version":"3.7.0","requests":"46990.4","latency":"20.76","throughput":"8.38"},{"name":"fastify","version":"5.10.0","hasRouter":true,"requests":"46850.4","latency":"20.82","throughput":"8.40"},{"name":"adonisjs","version":"9.1.0","hasRouter":true,"requests":"43868.8","latency":"22.30","throughput":"7.82"},{"name":"h3","version":"2.0.1-rc.25","hasRouter":true,"requests":"43402.4","latency":"22.52","throughput":"7.70"},{"name":"connect-router","version":"2.2.0","hasRouter":true,"requests":"43209.6","latency":"22.60","throughput":"7.71"},{"name":"hono","version":"4.12.31","hasRouter":true,"requests":"40188.0","latency":"24.38","throughput":"6.59"},{"name":"whatwg-node-server","version":"0.11.0","requests":"40124.2","latency":"24.39","throughput":"7.16"},{"name":"koa","version":"3.2.1","requests":"35724.2","latency":"27.54","throughput":"6.37"},{"name":"hapi","version":"21.4.9","hasRouter":true,"requests":"33980.6","latency":"28.93","throughput":"6.06"},{"name":"koa-router","version":"15.7.0","hasRouter":true,"requests":"33395.8","latency":"29.44","throughput":"5.96"},{"name":"express","version":"5.2.1","hasRouter":true,"requests":"27794.0","latency":"35.47","throughput":"4.96"},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":"25416.0","latency":"38.84","throughput":"4.53"},{"name":"express-with-middlewares","version":"5.2.1","hasRouter":true,"requests":"22402.4","latency":"44.14","throughput":"8.33"},{"name":"fastify-big-json","version":"5.10.0","hasRouter":true,"requests":"13854.0","latency":"71.66","throughput":"159.40"},{"name":"trpc-router","version":"11.18.0","hasRouter":true,"requests":"10280.5","latency":"96.71","throughput":"2.34"},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":"N/A","latency":"N/A","throughput":"N/A"}] \ No newline at end of file +[{"name":"0http","version":"5.1.0","hasRouter":true,"requests":54500.8,"latency":17.87,"throughput":9.72},{"name":"restana","version":"v6.0.1","hasRouter":true,"requests":49195.2,"latency":19.82,"throughput":12.39},{"name":"srvx","version":"0.12.1","requests":48867.2,"latency":20.04,"throughput":7.92},{"name":"node-http","version":"v24.18.0","requests":47916.8,"latency":20.43,"throughput":8.54},{"name":"micro","version":"10.0.1","requests":47431.2,"latency":20.57,"throughput":8.46},{"name":"polka","version":"0.5.2","hasRouter":true,"requests":47279.2,"latency":20.63,"throughput":8.43},{"name":"connect","version":"3.7.0","requests":46990.4,"latency":20.76,"throughput":8.38},{"name":"fastify","version":"5.10.0","hasRouter":true,"requests":46850.4,"latency":20.82,"throughput":8.4},{"name":"adonisjs","version":"9.1.0","hasRouter":true,"requests":43868.8,"latency":22.3,"throughput":7.82},{"name":"h3","version":"2.0.1-rc.25","hasRouter":true,"requests":43402.4,"latency":22.52,"throughput":7.7},{"name":"connect-router","version":"2.2.0","hasRouter":true,"requests":43209.6,"latency":22.6,"throughput":7.71},{"name":"hono","version":"4.12.31","hasRouter":true,"requests":40188,"latency":24.38,"throughput":6.59},{"name":"whatwg-node-server","version":"0.11.0","requests":40124.2,"latency":24.39,"throughput":7.16},{"name":"koa","version":"3.2.1","requests":35724.2,"latency":27.54,"throughput":6.37},{"name":"hapi","version":"21.4.9","hasRouter":true,"requests":33980.6,"latency":28.93,"throughput":6.06},{"name":"koa-router","version":"15.7.0","hasRouter":true,"requests":33395.8,"latency":29.44,"throughput":5.96},{"name":"express","version":"5.2.1","hasRouter":true,"requests":27794,"latency":35.47,"throughput":4.96},{"name":"microrouter","version":"3.1.3","hasRouter":true,"requests":25416,"latency":38.84,"throughput":4.53},{"name":"express-with-middlewares","version":"5.2.1","hasRouter":true,"requests":22402.4,"latency":44.14,"throughput":8.33},{"name":"fastify-big-json","version":"5.10.0","hasRouter":true,"requests":13854,"latency":71.66,"throughput":159.4},{"name":"trpc-router","version":"11.18.0","hasRouter":true,"requests":10280.5,"latency":96.71,"throughput":2.34},{"name":"restify","version":"11.1.0","hasRouter":true,"requests":null,"latency":null,"throughput":null}]