All apps employ two global middlewares with req
mutations, an empty GET
route handler for favicon.ico
and a GET handler for the /users/:id
, returning a User: {id}
string response.
Results are taken after 1 warm-up run. The command used for results is the following:
node run.mjs
run.mjs
is a script that launches a child process with the app and runs benchmarks against it, recursively, going to the next app in the list.
Xiaomi Laptop with 16GB RAM and Intel Core i7-8550U processor.
- OS: Manjaro Linux
- Kernel version: 5.6.16-1-MANJARO
- Node.js: 14.5.0
Note that benchmarks aren't completely accurate and are different on every run and on every machine.
The table takes average results
framework | req/s | transfer/sec |
---|---|---|
@tinyhttp/app (esm) | 25317 | 2.73 MB |
@tinyhttp/app (cjs) | 25403 | 2.74 MB |
[email protected] | 8617 | 1.13 MB |
[email protected] | 31042 | 3.35 MB |
- tinyhttp (esm)
┌─────────┬──────┬──────┬───────┬───────┬────────┬─────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼───────┼────────┼─────────┼──────────┤
│ Latency │ 2 ms │ 3 ms │ 7 ms │ 11 ms │ 3.5 ms │ 2.03 ms │ 61.38 ms │
└─────────┴──────┴──────┴───────┴───────┴────────┴─────────┴──────────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Req/Sec │ 15391 │ 15391 │ 27471 │ 30703 │ 25317.6 │ 5740.39 │ 15389 │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Bytes/Sec │ 1.66 MB │ 1.66 MB │ 2.97 MB │ 3.32 MB │ 2.73 MB │ 619 kB │ 1.66 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
Req/Bytes counts sampled once per second.
127k requests in 5.07s, 13.7 MB read
270 errors (0 timeouts)
- tinyhttp (cjs)
┌─────────┬──────┬──────┬───────┬───────┬─────────┬─────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼───────┼─────────┼─────────┼──────────┤
│ Latency │ 2 ms │ 3 ms │ 7 ms │ 10 ms │ 3.49 ms │ 1.95 ms │ 55.77 ms │
└─────────┴──────┴──────┴───────┴───────┴─────────┴─────────┴──────────┘
┌───────────┬─────────┬─────────┬─────────┬────────┬─────────┬─────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼─────────┼────────┼─────────┼─────────┼─────────┤
│ Req/Sec │ 18783 │ 18783 │ 27631 │ 30575 │ 25403.2 │ 4503.12 │ 18778 │
├───────────┼─────────┼─────────┼─────────┼────────┼─────────┼─────────┼─────────┤
│ Bytes/Sec │ 2.03 MB │ 2.03 MB │ 2.98 MB │ 3.3 MB │ 2.74 MB │ 486 kB │ 2.03 MB │
└───────────┴─────────┴─────────┴─────────┴────────┴─────────┴─────────┴─────────┘
Req/Bytes counts sampled once per second.
127k requests in 5.08s, 13.7 MB read
200 errors (0 timeouts)
┌─────────┬──────┬──────┬───────┬───────┬─────────┬────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼───────┼─────────┼────────┼──────────┤
│ Latency │ 6 ms │ 9 ms │ 26 ms │ 32 ms │ 10.8 ms │ 5.9 ms │ 74.13 ms │
└─────────┴──────┴──────┴───────┴───────┴─────────┴────────┴──────────┘
┌───────────┬────────┬────────┬─────────┬─────────┬─────────┬─────────┬────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼────────┼────────┼─────────┼─────────┼─────────┼─────────┼────────┤
│ Req/Sec │ 3477 │ 3477 │ 9679 │ 12719 │ 8617.4 │ 3149.14 │ 3476 │
├───────────┼────────┼────────┼─────────┼─────────┼─────────┼─────────┼────────┤
│ Bytes/Sec │ 455 kB │ 455 kB │ 1.27 MB │ 1.67 MB │ 1.13 MB │ 412 kB │ 455 kB │
└───────────┴────────┴────────┴─────────┴─────────┴─────────┴─────────┴────────┘
Req/Bytes counts sampled once per second.
43k requests in 5.05s, 5.64 MB read
800 errors (0 timeouts)
┌─────────┬──────┬──────┬───────┬───────┬─────────┬─────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼───────┼─────────┼─────────┼──────────┤
│ Latency │ 2 ms │ 2 ms │ 7 ms │ 10 ms │ 2.68 ms │ 2.18 ms │ 65.66 ms │
└─────────┴──────┴──────┴───────┴───────┴─────────┴─────────┴──────────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Req/Sec │ 14447 │ 14447 │ 32495 │ 38975 │ 31042.4 │ 8837.57 │ 14440 │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Bytes/Sec │ 1.56 MB │ 1.56 MB │ 3.51 MB │ 4.21 MB │ 3.35 MB │ 955 kB │ 1.56 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
Req/Bytes counts sampled once per second.
155k requests in 5.04s, 16.8 MB read
291 errors (0 timeouts)