monix / monix-grpc

Apache License 2.0
6 stars 2 forks source link

Performance benchmark #31

Closed borissmidt closed 1 year ago

borissmidt commented 3 years ago

On scala times there was a performance benchmark and grpc-akka has vastly improved its performance and made it almost equal to grpc-rust.

I think it would be a good idea to use the same benchmark: https://github.com/LesnyRumcajs/grpc_bench/wiki/2021-08-30-bench-results

I assume the code will be quite performant when you are done with it @jvican :+1: Otherwise we might have a look on how they reach that performance.

borissmidt commented 2 years ago

https://github.com/grpc/test-infra i found this which which could be usefull to run a benchmark against.

borissmidt commented 2 years ago

we might need to do some performance benchmarks because we aren't that fast according to this benchmark

-----------------------------------------------------------------------------------------------------------------------------------------
| name                        |   req/s |   avg. latency |        90 % in |        95 % in |        99 % in | avg. cpu |   avg. memory |
-----------------------------------------------------------------------------------------------------------------------------------------
| scala_akka                  |    6249 |      109.85 ms |      198.54 ms |      290.43 ms |      496.24 ms |   33.92% |     213.4 MiB |
| scala_zio                   |    6150 |      131.45 ms |      199.62 ms |      280.42 ms |      399.59 ms |   85.63% |    255.14 MiB |
| scala_monix                 |    4103 |      212.13 ms |      392.35 ms |      489.59 ms |      801.34 ms |   81.96% |    511.72 MiB |
| scala_fs2                   |    2519 |      393.67 ms |      700.51 ms |      769.91 ms |      806.52 ms |  102.66% |    223.08 MiB |
-----------------------------------------------------------------------------------------------------------------------------------------
Benchmark Execution Parameters:
a35fc13 Thu, 4 Nov 2021 21:26:59 +0100 Boris Smidt add monix-grpc benchmark
- GRPC_BENCHMARK_DURATION=300s
- GRPC_BENCHMARK_WARMUP=90s
- GRPC_SERVER_CPUS=1
- GRPC_SERVER_RAM=512m
- GRPC_CLIENT_CONNECTIONS=50
- GRPC_CLIENT_CONCURRENCY=1000
- GRPC_CLIENT_QPS=0
- GRPC_CLIENT_CPUS=1
- GRPC_REQUEST_PAYLOAD=100B