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 degradation in Akka with 2.12 #10083
Comments
Imported From: https://issues.scala-lang.org/browse/SI-10083?orig=1
|
@retronym said: I notice some "inlining too deep" notices in the
|
@retronym said: In that case, we refactored the hot code to avoid depending on JVM inlining so heavily. However, in your case I'm not able to improve performance with |
@retronym said: Is there some sort of simpler/smaller dispatcher we could configure? |
Johan Andrén (johanandren) said: |
Johan Andrén (johanandren) said: |
Johan Andrén (johanandren) said: |
@SethTisue said: |
@lrytz said: |
Johan Andrén (johanandren) said: |
@retronym said (edited on Dec 1, 2016 11:13:03 AM UTC): One problem might be if milestones of of Scala 2.12 had bugs that prevented Akka from building/working. |
Johan Andrén (johanandren) said (edited on Dec 2, 2016 12:07:27 PM UTC): |
@retronym said (edited on Dec 5, 2016 1:34:52 AM UTC): |
@retronym said (edited on Dec 5, 2016 3:33:51 AM UTC): In johanandren/akka-ping-pong@master...retronym:embed-akka, I changed Akka dispatcher and mailbox code to j.u.c.ForkJoin directly. This also shows the regression with 2.11.8. Prior to removing it, our fork of ForkJoin was at:
|
@retronym said: |
Johan Andrén (johanandren) said: |
Johan Andrén (johanandren) said: |
@retronym said: I think the last commit, discussed as https://bugs.openjdk.java.net/browse/JDK-8080623, might be relevant. As far as I can tell the benchmark only has two threads worth of work to do (one ping and one pong actor), so the 100% cpu utilization on machines with >2 cores was busy waiting. Throughput was certainly improved with this tactic, but:
|
@retronym said: |
@SethTisue said: |
A simple ping-pong throughput test of Akka yields 10-40% lower throughput with Scala 2.12 than 2.11. Reproducer project: https://github.com/johanandren/akka-ping-pong run with forked
run
from inside of sbt and++2.12.0
followed byrun
to run bench on 2.12Original Akka ticket: akka/akka#21910
Used yourkit and looked at allocation rates/gc which is a tiny bit worse but not enough to explain it (I think), nothing obvious from CPU trace profiling either (see attached yourkit snapshots, sorry about bz2 but couldn't get them small enought to attach with zip).
The text was updated successfully, but these errors were encountered: