Skip to content

jsc723/coroutine-server

Repository files navigation

C++ 20 coroutine example server

requirements

  • linux
  • cmake >= 3.20
  • gcc >= 13

build

cmake -B build
cmake --build build

run

./build/server 8080
./build/client 8080

benchmark

ab -n 1000000 -c 100 -k http://127.0.0.1:8080/
single thread echo server: 
    Requests per second:    311371.09 [#/sec] (mean)
    Time per request:       0.321 [ms] (mean)
    Time per request:       0.003 [ms] (mean, across all concurrent requests)
    Transfer rate:          32231.77 [Kbytes/sec] received
multi thread echo server: 
    Requests per second:    28186.86 [#/sec] (mean)
    Time per request:       3.548 [ms] (mean)
    Time per request:       0.035 [ms] (mean, across all concurrent requests)
    Transfer rate:          2917.78 [Kbytes/sec] received

libcoro tcp echo server:
    Requests per second:    57714.94 [#/sec] (mean)
    Time per request:       17.327 [ms] (mean)
    Time per request:       0.017 [ms] (mean, across all concurrent requests)
    Transfer rate:          5974.40 [Kbytes/sec] received

About

a sample echo server using c++20 coroutine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published