-
-
Notifications
You must be signed in to change notification settings - Fork 83
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Performance in benchmarks #264
Comments
The flamegraphs are available here https://drive.google.com/drive/folders/1Ef8nc_t01O8pTuD4eCiNk3J1WFPGJAms but the only obvious thing is the outside TLAB allocations caused by |
Thanks! I'm trying to interpret the flamegraph. It looks like the majority of the time is spent in grpc itself writing the responses to the output steam (from |
Possibly the benchmarks can improve substantially if the heap is more generous (via |
true, I am running the benchmarks with |
But maybe there are ways to avoid all those allocations:
|
Isn't It's reasonable to expect to have the ZIO implementation perform significantly more allocations per RPC. There's a number of grpc-java API calls per request. Each call is wrapped in an effect and these effects are chained with ZIO combinators. |
https://discuss.lightbend.com/t/akka-grpc-performance-in-benchmarks/8236/14 |
Thanks for working on it! It looks like applying the setting also improved the plain Java benchmark so we now have a higher target to chase :) |
No. this was only a problem in the scala implementations |
Hi again, just wanted to share some details about the updated benchmark now with the right heap settings The left side corresponds to the ServiceBuilder Executor threads, the middle side to netty threads, and the right side to zio threads. For comparison here is the java flamegraph, where we can see the netty side is very similar, but less threads are used. Something that I noticed is the use of This flamegraph is very similar to fs2-grpc, and they also use "unsafeRun" typelevel/fs2-grpc#386 (comment) |
Closing due to inactivity. A few changes introduced recently that we expect would result in better performance. Would be great to have an update on this when you get a chance. |
Hi!
As discussed in gitter I am opening an issue to document some findings about the zio-grpc performance in this benchmark. I started this journey investigating why the akka-grpc results were so bad (https://discuss.lightbend.com/t/akka-grpc-performance-in-benchmarks/8236/) but then got curious what would be the numbers for other implementations...
The zio-grpc implementation of the benchmark was done in this PR and the results I got were
The text was updated successfully, but these errors were encountered: