You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, I've been using the Savina benchmarks to evaluate an Akka feature I'm developing.
I noticed that the Akka benchmarks do not use the most efficient API for spawning actors. Namely, in FibonacciAkkaActorBenchmark, actors are spawned using context.system.actorOf instead of context.actorOf. The former API spawns actors at the top level of the supervision hierarchy, whereas the latter means that the parent supervises the child. I found that switching from the former to the latter led to a 2x performance improvement in Akka 2.6.3!
My theory is that you used the former API to simplify manual actor termination. In Akka, stopping the supervisor causes all its descendants to stop, which can sometimes mean that actors stop earlier than expected.
Is my theory correct? I'd love to hear your thoughts.
The text was updated successfully, but these errors were encountered:
Hi, I've been using the Savina benchmarks to evaluate an Akka feature I'm developing.
I noticed that the Akka benchmarks do not use the most efficient API for spawning actors. Namely, in
FibonacciAkkaActorBenchmark
, actors are spawned usingcontext.system.actorOf
instead ofcontext.actorOf
. The former API spawns actors at the top level of the supervision hierarchy, whereas the latter means that the parent supervises the child. I found that switching from the former to the latter led to a 2x performance improvement in Akka 2.6.3!My theory is that you used the former API to simplify manual actor termination. In Akka, stopping the supervisor causes all its descendants to stop, which can sometimes mean that actors stop earlier than expected.
Is my theory correct? I'd love to hear your thoughts.
The text was updated successfully, but these errors were encountered: