Skip to content

Instantly share code, notes, and snippets.

@jrudolph
Created July 20, 2017 13:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jrudolph/dfd3620c11153b4c3179eb68910af551 to your computer and use it in GitHub Desktop.
Save jrudolph/dfd3620c11153b4c3179eb68910af551 to your computer and use it in GitHub Desktop.
Benchmark new Affinity Vs FJP dispatcher
Intel(R) Core(TM) i7-3840QM CPU @ 2.80GHz
Turbo off
Linux 64bit
jmh:run -i 4 -wi 4 -f 1 -p throughPut=1 -p dispatcher=affinity-dispatcher,default-fj-dispatcher .*AffinityPoolReq.*
[info] Benchmark (dispatcher) (mailbox) (throughPut) Mode Cnt Score Error Units
[info] AffinityPoolRequestResponseBenchmark.queryUserServiceActor affinity-dispatcher SingleConsumerOnlyUnboundedMailbox 1 thrpt 4 3634030.863 ± 3728431.081 ops/s
[info] AffinityPoolRequestResponseBenchmark.queryUserServiceActor default-fj-dispatcher SingleConsumerOnlyUnboundedMailbox 1 thrpt 4 4031047.752 ± 1552394.546 ops/s
akka-bench-jmh > jmh:run -i 4 -wi 4 -f 1 -p throughPut=1 -p dispatcher=affinity-dispatcher,default-fj-dispatcher .*AffinityPoolReq.*
[info] Running org.openjdk.jmh.Main -i 4 -wi 4 -f 1 -p throughPut=1 -p dispatcher=affinity-dispatcher,default-fj-dispatcher .*AffinityPoolReq.*
[info] # JMH version: 1.19
[info] # VM version: JDK 1.8.0_131, VM 25.131-b11
[info] # VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java
[info] # VM options: <none>
[info] # Warmup: 4 iterations, 15 s each
[info] # Measurement: 4 iterations, 20 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: akka.actor.AffinityPoolRequestResponseBenchmark.queryUserServiceActor
[info] # Parameters: (dispatcher = affinity-dispatcher, mailbox = SingleConsumerOnlyUnboundedMailbox, throughPut = 1)
[info]
[info] # Run progress: 0.00% complete, ETA 00:04:40
[info] # Fork: 1 of 1
[info] # Warmup Iteration 1: 3200000 messages by 8 actors took 860 ms, 3.72 M msg/s
[info] 3200000 messages by 8 actors took 1027 ms, 3.11 M msg/s
[info] 3200000 messages by 8 actors took 812 ms, 3.94 M msg/s
[info] 3544471.507 ops/s
[info] # Warmup Iteration 2: 3200000 messages by 8 actors took 780 ms, 4.10 M msg/s
[info] 3200000 messages by 8 actors took 903 ms, 3.54 M msg/s
[info] 3200000 messages by 8 actors took 1016 ms, 3.15 M msg/s
[info] 3200000 messages by 8 actors took 823 ms, 3.89 M msg/s
[info] 3629170.913 ops/s
[info] # Warmup Iteration 3: 3200000 messages by 8 actors took 776 ms, 4.12 M msg/s
[info] 3200000 messages by 8 actors took 890 ms, 3.60 M msg/s
[info] 3200000 messages by 8 actors took 889 ms, 3.60 M msg/s
[info] 3200000 messages by 8 actors took 856 ms, 3.74 M msg/s
[info] 3748207.901 ops/s
[info] # Warmup Iteration 4: 3200000 messages by 8 actors took 744 ms, 4.30 M msg/s
[info] 3200000 messages by 8 actors took 809 ms, 3.95 M msg/s
[info] 3200000 messages by 8 actors took 872 ms, 3.67 M msg/s
[info] 3200000 messages by 8 actors took 672 ms, 4.76 M msg/s
[info] 3200000 messages by 8 actors took 743 ms, 4.30 M msg/s
[info] 4159284.916 ops/s
[info] Iteration 1: 3200000 messages by 8 actors took 692 ms, 4.62 M msg/s
[info] 3200000 messages by 8 actors took 2264 ms, 1.41 M msg/s
[info] 3200000 messages by 8 actors took 706 ms, 4.53 M msg/s
[info] 3200000 messages by 8 actors took 993 ms, 3.22 M msg/s
[info] 3200000 messages by 8 actors took 861 ms, 3.72 M msg/s
[info] 3200000 messages by 8 actors took 967 ms, 3.31 M msg/s
[info] 2958575.238 ops/s
[info] Iteration 2: 3200000 messages by 8 actors took 797 ms, 4.01 M msg/s
[info] 3200000 messages by 8 actors took 922 ms, 3.47 M msg/s
[info] 3200000 messages by 8 actors took 1205 ms, 2.66 M msg/s
[info] 3200000 messages by 8 actors took 950 ms, 3.37 M msg/s
[info] 3200000 messages by 8 actors took 906 ms, 3.53 M msg/s
[info] 3200000 messages by 8 actors took 839 ms, 3.81 M msg/s
[info] 3412542.034 ops/s
[info] Iteration 3: 3200000 messages by 8 actors took 683 ms, 4.69 M msg/s
[info] 3200000 messages by 8 actors took 713 ms, 4.48 M msg/s
[info] 3200000 messages by 8 actors took 710 ms, 4.50 M msg/s
[info] 3200000 messages by 8 actors took 851 ms, 3.76 M msg/s
[info] 3200000 messages by 8 actors took 792 ms, 4.04 M msg/s
[info] 3200000 messages by 8 actors took 714 ms, 4.48 M msg/s
[info] 4295999.523 ops/s
[info] Iteration 4: 3200000 messages by 8 actors took 845 ms, 3.79 M msg/s
[info] 3200000 messages by 8 actors took 910 ms, 3.51 M msg/s
[info] 3200000 messages by 8 actors took 926 ms, 3.45 M msg/s
[info] 3200000 messages by 8 actors took 910 ms, 3.51 M msg/s
[info] 3200000 messages by 8 actors took 879 ms, 3.64 M msg/s
[info] 3200000 messages by 8 actors took 603 ms, 5.30 M msg/s
[info] 3200000 messages by 8 actors took 709 ms, 4.51 M msg/s
[info] 3869006.659 ops/s
[info]
[info]
[info] Result "akka.actor.AffinityPoolRequestResponseBenchmark.queryUserServiceActor":
[info] 3634030.863 ±(99.9%) 3728431.081 ops/s [Average]
[info] (min, avg, max) = (2958575.238, 3634030.863, 4295999.523), stdev = 576978.837
[info] CI (99.9%): [≈ 0, 7362461.944] (assumes normal distribution)
[info]
[info]
[info] # JMH version: 1.19
[info] # VM version: JDK 1.8.0_131, VM 25.131-b11
[info] # VM invoker: /usr/lib/jvm/java-8-oracle/jre/bin/java
[info] # VM options: <none>
[info] # Warmup: 4 iterations, 15 s each
[info] # Measurement: 4 iterations, 20 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: akka.actor.AffinityPoolRequestResponseBenchmark.queryUserServiceActor
[info] # Parameters: (dispatcher = default-fj-dispatcher, mailbox = SingleConsumerOnlyUnboundedMailbox, throughPut = 1)
[info]
[info] # Run progress: 50.00% complete, ETA 00:02:39
[info] # Fork: 1 of 1
[info] # Warmup Iteration 1: 3200000 messages by 8 actors took 1006 ms, 3.18 M msg/s
[info] 3200000 messages by 8 actors took 1917 ms, 1.67 M msg/s
[info] 3200000 messages by 8 actors took 1785 ms, 1.79 M msg/s
[info] 2035194.982 ops/s
[info] # Warmup Iteration 2: 3200000 messages by 8 actors took 1725 ms, 1.85 M msg/s
[info] 3200000 messages by 8 actors took 826 ms, 3.87 M msg/s
[info] 3200000 messages by 8 actors took 836 ms, 3.82 M msg/s
[info] 2832072.036 ops/s
[info] # Warmup Iteration 3: 3200000 messages by 8 actors took 807 ms, 3.96 M msg/s
[info] 3200000 messages by 8 actors took 807 ms, 3.96 M msg/s
[info] 3200000 messages by 8 actors took 781 ms, 4.09 M msg/s
[info] 3200000 messages by 8 actors took 736 ms, 4.34 M msg/s
[info] 4081651.596 ops/s
[info] # Warmup Iteration 4: 3200000 messages by 8 actors took 830 ms, 3.85 M msg/s
[info] 3200000 messages by 8 actors took 903 ms, 3.54 M msg/s
[info] 3200000 messages by 8 actors took 713 ms, 4.49 M msg/s
[info] 3200000 messages by 8 actors took 880 ms, 3.63 M msg/s
[info] 3844328.026 ops/s
[info] Iteration 1: 3200000 messages by 8 actors took 910 ms, 3.51 M msg/s
[info] 3200000 messages by 8 actors took 873 ms, 3.66 M msg/s
[info] 3200000 messages by 8 actors took 836 ms, 3.83 M msg/s
[info] 3200000 messages by 8 actors took 728 ms, 4.39 M msg/s
[info] 3200000 messages by 8 actors took 732 ms, 4.37 M msg/s
[info] 3200000 messages by 8 actors took 914 ms, 3.50 M msg/s
[info] 3840234.370 ops/s
[info] Iteration 2: 3200000 messages by 8 actors took 739 ms, 4.33 M msg/s
[info] 3200000 messages by 8 actors took 906 ms, 3.53 M msg/s
[info] 3200000 messages by 8 actors took 937 ms, 3.41 M msg/s
[info] 3200000 messages by 8 actors took 809 ms, 3.95 M msg/s
[info] 3200000 messages by 8 actors took 916 ms, 3.49 M msg/s
[info] 3200000 messages by 8 actors took 730 ms, 4.38 M msg/s
[info] 3807697.380 ops/s
[info] Iteration 3: 3200000 messages by 8 actors took 734 ms, 4.36 M msg/s
[info] 3200000 messages by 8 actors took 760 ms, 4.21 M msg/s
[info] 3200000 messages by 8 actors took 727 ms, 4.40 M msg/s
[info] 3200000 messages by 8 actors took 801 ms, 3.99 M msg/s
[info] 3200000 messages by 8 actors took 749 ms, 4.27 M msg/s
[info] 3200000 messages by 8 actors took 729 ms, 4.39 M msg/s
[info] 4261338.443 ops/s
[info] Iteration 4: 3200000 messages by 8 actors took 750 ms, 4.26 M msg/s
[info] 3200000 messages by 8 actors took 734 ms, 4.36 M msg/s
[info] 3200000 messages by 8 actors took 774 ms, 4.13 M msg/s
[info] 3200000 messages by 8 actors took 745 ms, 4.29 M msg/s
[info] 3200000 messages by 8 actors took 727 ms, 4.40 M msg/s
[info] 3200000 messages by 8 actors took 768 ms, 4.17 M msg/s
[info] 3200000 messages by 8 actors took 809 ms, 3.95 M msg/s
[info] 4214920.814 ops/s
[info]
[info]
[info] Result "akka.actor.AffinityPoolRequestResponseBenchmark.queryUserServiceActor":
[info] 4031047.752 ±(99.9%) 1552394.546 ops/s [Average]
[info] (min, avg, max) = (3807697.380, 4031047.752, 4261338.443), stdev = 240234.774
[info] CI (99.9%): [2478653.206, 5583442.298] (assumes normal distribution)
[info]
[info]
[info] # Run complete. Total time: 00:05:19
[info]
[info] Benchmark (dispatcher) (mailbox) (throughPut) Mode Cnt Score Error Units
[info] AffinityPoolRequestResponseBenchmark.queryUserServiceActor affinity-dispatcher SingleConsumerOnlyUnboundedMailbox 1 thrpt 4 3634030.863 ± 3728431.081 ops/s
[info] AffinityPoolRequestResponseBenchmark.queryUserServiceActor default-fj-dispatcher SingleConsumerOnlyUnboundedMailbox 1 thrpt 4 4031047.752 ± 1552394.546 ops/s
[success] Total time: 323 s, completed Jul 20, 2017 2:53:40 PM
  • https://github.com/akka/akka.git
  • git checkout dd042d0fdc9c15237577ae96b9d12138c1afee7d
  • sbt
    • project akka-bench-jmh
    • jmh:run -i 4 -wi 4 -f 1 -p throughPut=1 -p dispatcher=affinity-dispatcher,default-fj-dispatcher .*AffinityPoolReq.*
  • Use i7z tool to check that CPU doesn't change frequency during run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment