5 ms·
gRPC is slow with Python, but most people don't pick Python if they are serious about performance. gRPC has continuous benchmarks running[1] to track and impro
by morecoffee 9y ago
gRPC is slow with Python, but most people don't pick Python if they are serious about performance. gRPC has continuous benchmarks running[1] to track and improve perf. I agree the Python one has some serious problems, but don't let it be the whole story. The C++ implementation is 100x faster.
[1] https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5652536396611584 https://performance-dot-grpc-testing.appspot.com/explore?das...
- dyu- 9y agoFor the non-pingpong benchmark [1], c++ (300k rps) looks to be around 2x faster than java (150k rps), while the latter is around 2x faster than go (75k rps). It looks like go's non-compacting/non-generational gc is at play here. Even csharp is faster than go on that benchmark. The one you posted has no deserialization overhead since its just ping/pong. [1] https://performance-dot-grpc-testing.appspot.com/explore?dashboard=5636470266134528&widget=828849126&container=1808124444 https://performance-dot-grpc-testing.appspot.com/explore?das... edit: fix typo
- Veratyr 9y agoI'm aware and I did try out a C++ client but there was still a definite upper bound to its performance and latency was still ~2x Cap'n'Proto.
- morecoffee 9y agoIf the perf of gRPC is not good enough, you should file an issue on Github. I'm kind of surprised that gRPC loist by 2x. That's about how much better netperf is. When you say you used Cap'n'proto, did you mean the RPC and serializer, or just the serializer? I ask because gRPC's serialization is pluggable, and doesn't have a dependency on Protobuf.