Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Some facts

  • Boost.Coroutine2 does not support migration of coroutines between threads.
  • Boost.Fiber does not support it by default.
  • On low throughput Rust and C++ implementations are slightly slower than Go.
  • There is significant difference (like 10x) between cold and hot runs.
  • Looks like Go implementation scales pretty poor.

Results

OS X, M3 Pro

Go (hot):

% wrc -c 1000 -t 1000 'http://127.0.0.1:8080/api/v1/bench?sleep=5ms&repeat=100'
Running 10s test @ http://127.0.0.1:8080/api/v1/bench?sleep=5ms&repeat=100
  1000 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   584.54ms  103.51ms 979.20ms   88.84%
    Req/Sec     0.99      0.12     2.00     98.64%
  8963 requests in 10.11s, 771.57KB read
  Socket errors: connect 0, read 4410, write 0, timeout 0
Requests/sec:    886.39
Transfer/sec:     76.30KB

C++ (hot):

% wrc -c 1000 -t 1000 'http://127.0.0.1:8080/api/v1/bench?sleep=5ms&repeat=100'
Running 10s test @ http://127.0.0.1:8080/api/v1/bench?sleep=5ms&repeat=100
  1000 threads and 1000 connections
  Thread Stats   Avg      Stdev     Max   +/- Stdev
    Latency   539.89ms   73.47ms   1.01s    96.95%
    Req/Sec     0.92      0.31     2.00     89.55%
  12859 requests in 10.11s, 1.08MB read
  Socket errors: connect 0, read 2086, write 0, timeout 0
Requests/sec:   1272.38
Transfer/sec:    109.35KB

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages