Skip to content

Latest commit

 

History

History
 
 

benchmark

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Benchmarks

Sample apps

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.

Benchmarking command

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.

Information

Hardware

Xiaomi Laptop with 16GB RAM and Intel Core i7-8550U processor.

Software

  • OS: Manjaro Linux
  • Kernel version: 5.6.16-1-MANJARO
  • Node.js: 14.5.0

Results

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

Detailed results

  • 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)