smol-tokio-hyper-benchmarks

Stars
9
Committers
1

smol vs tokio with hyper benchmarks

Debug VS Release

Single-threaded VS Multi-threaded

$ npm i autocannon -g

smol

Listening on http://127.0.0.1:8000

single-threaded

  1. Debug

$ cargo run --bin hello-smol-single

$ autocannon 127.0.0.1:8000
Running 10s test @ http://127.0.0.1:8000
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max      

 Latency  0 ms  3 ms  3 ms   4 ms  2.71 ms  0.96 ms  10.02 ms 


 Stat       1%      2.5%    50%     97.5%   Avg      Stdev  Min    

 Req/Sec    2839    2839    2855    2865    2855.37  7.08   2839   

 Bytes/Sec  250 kB  250 kB  251 kB  252 kB  251 kB   625 B  250 kB 


Req/Bytes counts sampled once per second.

31k requests in 11.03s, 2.76 MB read
  1. Release

$ cargo run --bin hello-smol-single --release

$ autocannon 127.0.0.1:8000
Running 10s test @ http://127.0.0.1:8000
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max     

 Latency  0 ms  0 ms  0 ms   0 ms  0.01 ms  0.04 ms  6.01 ms 


 Stat       1%       2.5%     50%      97.5%    Avg       Stdev    Min     

 Req/Sec    67775    67775    76607    77055    75086.55  2842.08  67746   

 Bytes/Sec  5.96 MB  5.96 MB  6.74 MB  6.78 MB  6.61 MB   250 kB   5.96 MB 


Req/Bytes counts sampled once per second.

826k requests in 11.05s, 72.7 MB read

multi-threaded

  1. Debug

cargo run --bin hello-smol-multi

$ autocannon 127.0.0.1:8000
Running 10s test @ http://127.0.0.1:8000
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max      

 Latency  0 ms  0 ms  1 ms   1 ms  0.26 ms  0.49 ms  10.86 ms 


 Stat       1%      2.5%    50%      97.5%    Avg       Stdev   Min    

 Req/Sec    10607   10607   11559    11607    11367.64  293.48  10600  

 Bytes/Sec  933 kB  933 kB  1.02 MB  1.02 MB  1 MB      26 kB   933 kB 


Req/Bytes counts sampled once per second.

125k requests in 11.03s, 11 MB read
  1. Release

$ cargo run --bin hello-smol-multi --release

$ autocannon 127.0.0.1:8000
Running 10s test @ http://127.0.0.1:8000
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max     

 Latency  0 ms  0 ms  0 ms   0 ms  0.01 ms  0.04 ms  6.08 ms 


 Stat       1%       2.5%     50%      97.5%    Avg       Stdev    Min     

 Req/Sec    58719    58719    69951    71167    68538.19  4019.21  58703   

 Bytes/Sec  5.17 MB  5.17 MB  6.16 MB  6.26 MB  6.03 MB   353 kB   5.17 MB 


Req/Bytes counts sampled once per second.

754k requests in 11.04s, 66.3 MB read

tokio

Listening on http://127.0.0.1:8001

single-threaded

  1. Debug

$ cargo run --bin hello-tokio-single

$ autocannon 127.0.0.1:8001
Running 10s test @ http://127.0.0.1:8001
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max     

 Latency  0 ms  0 ms  0 ms   0 ms  0.01 ms  0.06 ms  6.01 ms 


 Stat       1%       2.5%     50%      97.5%    Avg      Stdev    Min     

 Req/Sec    18911    18911    19391    19519    19301.1  187.69   18906   

 Bytes/Sec  1.66 MB  1.66 MB  1.71 MB  1.72 MB  1.7 MB   16.4 kB  1.66 MB 


Req/Bytes counts sampled once per second.

212k requests in 11.04s, 18.7 MB read
  1. Release

$ cargo run --bin hello-tokio-single --release

$ autocannon 127.0.0.1:8001
Running 10s test @ http://127.0.0.1:8001
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max     

 Latency  0 ms  0 ms  0 ms   0 ms  0.01 ms  0.03 ms  6.06 ms 


 Stat       1%      2.5%    50%      97.5%    Avg       Stdev    Min    

 Req/Sec    69375   69375   75839    77183    75290.19  2152.17  69322  

 Bytes/Sec  6.1 MB  6.1 MB  6.67 MB  6.79 MB  6.63 MB   190 kB   6.1 MB 


Req/Bytes counts sampled once per second.

828k requests in 11.04s, 72.9 MB read

multi-threaded

  1. Debug

$ cargo run --bin hello-tokio-multi

$ autocannon 127.0.0.1:8001
Running 10s test @ http://127.0.0.1:8001
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max     

 Latency  0 ms  0 ms  0 ms   0 ms  0.01 ms  0.04 ms  6.14 ms 


 Stat       1%       2.5%     50%      97.5%    Avg       Stdev    Min     

 Req/Sec    40319    40319    43519    44607    43346.91  1227.17  40306   

 Bytes/Sec  3.55 MB  3.55 MB  3.83 MB  3.93 MB  3.81 MB   108 kB   3.55 MB 


Req/Bytes counts sampled once per second.

477k requests in 11.04s, 42 MB read
  1. Release

$ cargo run --bin hello-tokio-multi --release

$ autocannon 127.0.0.1:8001
Running 10s test @ http://127.0.0.1:8001
10 connections


 Stat     2.5%  50%   97.5%  99%   Avg      Stdev    Max     

 Latency  0 ms  0 ms  0 ms   0 ms  0.01 ms  0.04 ms  6.13 ms 


 Stat       1%       2.5%     50%      97.5%    Avg      Stdev    Min     

 Req/Sec    66943    66943    74687    74879    73661.1  2243.64  66932   

 Bytes/Sec  5.89 MB  5.89 MB  6.57 MB  6.59 MB  6.48 MB  198 kB   5.89 MB 


Req/Bytes counts sampled once per second.

810k requests in 11.05s, 71.3 MB read