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) | 28680 | 3.1 MB |
@tinyhttp/app (cjs) | 29144 | 3.15 MB |
[email protected] | 11902 | 1.56 MB |
[email protected] | 37249 | 4.02 MB |
- tinyhttp (esm)
┌─────────┬──────┬──────┬───────┬──────┬────────┬─────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼──────┼────────┼─────────┼──────────┤
│ Latency │ 2 ms │ 3 ms │ 6 ms │ 9 ms │ 3.2 ms │ 1.56 ms │ 49.27 ms │
└─────────┴──────┴──────┴───────┴──────┴────────┴─────────┴──────────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬────────┬─────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼─────────┼─────────┼────────┼─────────┼─────────┤
│ Req/Sec │ 20095 │ 20095 │ 30655 │ 31359 │ 28680 │ 4324.96 │ 20084 │
├───────────┼─────────┼─────────┼─────────┼─────────┼────────┼─────────┼─────────┤
│ Bytes/Sec │ 2.17 MB │ 2.17 MB │ 3.31 MB │ 3.39 MB │ 3.1 MB │ 467 kB │ 2.17 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴────────┴─────────┴─────────┘
Req/Bytes counts sampled once per second.
143k requests in 5.07s, 15.5 MB read
100 errors (0 timeouts)
- tinyhttp (cjs)
┌─────────┬──────┬──────┬───────┬──────┬─────────┬────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼──────┼─────────┼────────┼──────────┤
│ Latency │ 2 ms │ 3 ms │ 5 ms │ 9 ms │ 3.14 ms │ 2.2 ms │ 80.88 ms │
└─────────┴──────┴──────┴───────┴──────┴─────────┴────────┴──────────┘
┌───────────┬─────────┬─────────┬────────┬─────────┬─────────┬────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼────────┼─────────┼─────────┼────────┼─────────┤
│ Req/Sec │ 18607 │ 18607 │ 31471 │ 32639 │ 29144 │ 5311.7 │ 18592 │
├───────────┼─────────┼─────────┼────────┼─────────┼─────────┼────────┼─────────┤
│ Bytes/Sec │ 2.01 MB │ 2.01 MB │ 3.4 MB │ 3.52 MB │ 3.15 MB │ 574 kB │ 2.01 MB │
└───────────┴─────────┴─────────┴────────┴─────────┴─────────┴────────┴─────────┘
Req/Bytes counts sampled once per second.
146k requests in 5.04s, 15.7 MB read
400 errors (0 timeouts)
┌─────────┬──────┬──────┬───────┬───────┬─────────┬─────────┬──────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼───────┼─────────┼─────────┼──────────┤
│ Latency │ 6 ms │ 7 ms │ 15 ms │ 18 ms │ 7.74 ms │ 3.55 ms │ 79.81 ms │
└─────────┴──────┴──────┴───────┴───────┴─────────┴─────────┴──────────┘
┌───────────┬────────┬────────┬─────────┬─────────┬─────────┬─────────┬────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼────────┼────────┼─────────┼─────────┼─────────┼─────────┼────────┤
│ Req/Sec │ 6923 │ 6923 │ 13079 │ 13607 │ 11902.8 │ 2521.49 │ 6920 │
├───────────┼────────┼────────┼─────────┼─────────┼─────────┼─────────┼────────┤
│ Bytes/Sec │ 907 kB │ 907 kB │ 1.71 MB │ 1.78 MB │ 1.56 MB │ 330 kB │ 907 kB │
└───────────┴────────┴────────┴─────────┴─────────┴─────────┴─────────┴────────┘
Req/Bytes counts sampled once per second.
60k requests in 5.03s, 7.8 MB read
700 errors (0 timeouts)
┌─────────┬──────┬──────┬───────┬──────┬─────────┬─────────┬─────────┐
│ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │
├─────────┼──────┼──────┼───────┼──────┼─────────┼─────────┼─────────┤
│ Latency │ 2 ms │ 2 ms │ 4 ms │ 7 ms │ 2.19 ms │ 1.55 ms │ 58.1 ms │
└─────────┴──────┴──────┴───────┴──────┴─────────┴─────────┴─────────┘
┌───────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┐
│ Stat │ 1% │ 2.5% │ 50% │ 97.5% │ Avg │ Stdev │ Min │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Req/Sec │ 25647 │ 25647 │ 39583 │ 40991 │ 37249.6 │ 5839.08 │ 25642 │
├───────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┼─────────┤
│ Bytes/Sec │ 2.77 MB │ 2.77 MB │ 4.27 MB │ 4.43 MB │ 4.02 MB │ 630 kB │ 2.77 MB │
└───────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┘
Req/Bytes counts sampled once per second.
186k requests in 5.03s, 20.1 MB read
252 errors (0 timeouts)