-
Notifications
You must be signed in to change notification settings - Fork 10.4k
Closed
Labels
area-grpcIncludes: GRPC wire-up, templatesIncludes: GRPC wire-up, templates
Description
Is there an existing issue for this?
- I have searched the existing issues
Describe the bug
I wrote a small benchmark for some of mainstream RPC libraries on .NET - originally to benchmark my own library (Stl.Rpc), but ended up adding nearly every other option.
Benchmark description and its results:
- https://servicetitan.github.io/Stl.Fusion.Samples/rpc-benchmark
- Raw version of the same document: https://github.com/servicetitan/Stl.Fusion.Samples/blob/master/docs/rpc-benchmark.md
Expected Behavior
gRPC is expected to perform on SignalR level. Instead, it performs ~ on HttpClient level.
To clarify, the difference between gRPC and SignalR performance is dramatic:
101.81K
calls/s vs345.35K
calls/s onSayHello
LAN test - it's the same payload as in https://github.com/LesnyRumcajs/grpc_bench - and other LAN tests with smaller payloads perform even worse125.11K calls/s
vs1.22M calls/s
on the sameSayHello
test running server + client on a single machine.
Steps To Reproduce
- Clone the repository:
git clone [email protected]:servicetitan/Stl.Fusion.Samples.git
- Run
dotnet run -c Release --project src/RpcBenchmark/RpcBenchmark.csproj
See https://servicetitan.github.io/Stl.Fusion.Samples/rpc-benchmark to try some other run options.
Exceptions (if any)
No response
.NET Version
8.0 Preview 7
Anything else?
No response
Metadata
Metadata
Assignees
Labels
area-grpcIncludes: GRPC wire-up, templatesIncludes: GRPC wire-up, templates