Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
eCAL
Discontinued Please visit the new repository: https://github.com/eclipse-ecal/ecal (by continental)
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
Any ideas why the C++ is so slow compared to Rust in single core and Java in general? 50k vs 28k seems to point some crazy Java JIT magic, perf bugs in the C++ code or something wrong with the benchmark itself. Looking at https://github.com/LesnyRumcajs/grpc_bench/blob/master/cpp_grpc_st_bench/main.cpp I'm assuming a combination of the latter two, because of the extremely unidiomatic code. I don't really understand that the hell is happening there with the number of members, but I don't think constantly heap allocating and freeing CallData (with new instances of the grpc/protobuf objects) is a normal way of working.
It should be unbound, in this particular benchmark we set ghz concurrency to 50 and connections to 5 and we don't set the rps flag of ghz (e.g. --rps=2000, from this tool)
A fair amount of server implementations were grabbed from their respective library examples - in this case we took it directly from gRPC https://github.com/grpc/grpc/blob/master/examples/cpp/helloworld/greeter_async_server.cc . So I guess it passed some Google standards. I agree though, this state machine looks crazy. Or [mad] genius.
This really makes me want to try https://github.com/continental/ecal with https://github.com/google/flatbuffers to see how they compare. I also know that gpc for cpp at least stops functioning by about 4 MB of request size. Which I find stupid. What if I want to send uncompressed bitmaps!
This really makes me want to try https://github.com/continental/ecal with https://github.com/google/flatbuffers to see how they compare. I also know that gpc for cpp at least stops functioning by about 4 MB of request size. Which I find stupid. What if I want to send uncompressed bitmaps!
Related posts
- Flatty - flat message buffers with direct mapping to Rust types without packing/unpacking
- gRPC on the client side
- QuickBuffers 1.1 released
- Designing a language where all types are memcpy/blittable.
- gRPC Name Resolution & Load Balancing on Kubernetes: Everything you need to know (and probably a bit more)