Created
October 8, 2017 13:01
-
-
Save viktorklang/1c2c9e213bce6159d4114e14c6bc1f06 to your computer and use it in GitHub Desktop.
Try the latest Scala Future impl!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
First: Close all other applications, so that they don't interfere with the benchmark. | |
Second: Make sure that your computer is adequately cooled during the benchmark so it doesn't start thermal throttling. | |
Third: clone https://github.com/viktorklang/scala-futures/ | |
Fourth: git checkout wip-optimizations-√ | |
Fifth: start sbt | |
> project benches | |
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .TransformationBenchmark* | |
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .CallbackBenchmark* | |
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .CompletionWithBenchmark* | |
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .CompletionBenchmark* | |
Last, but not least, report back the results of the benches, as a comment on this gist! |
Late 2014 iMac, i7 4Ghz 4 core, Java 1.8.0_144, MacOS High Sierra, 32Gb 1600Mhz
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .TransformationBenchmark*
[info] # Run complete. Total time: 00:06:01
[info]
[info] Benchmark (impl) (pool) (threads) Mode Cnt Score Error Units
[info] TransformationBenchmark.transformation_1 stdlib fjp 1 thrpt 10 0.136 ± 0.002 ops/us
[info] TransformationBenchmark.transformation_1 improved fjp 1 thrpt 10 0.132 ± 0.003 ops/us
[info] TransformationBenchmark.transformation_1024 stdlib fjp 1 thrpt 10 8.853 ± 0.094 ops/us
[info] TransformationBenchmark.transformation_1024 improved fjp 1 thrpt 10 19.439 ± 1.313 ops/us
[info] TransformationBenchmark.transformation_16 stdlib fjp 1 thrpt 10 1.771 ± 0.023 ops/us
[info] TransformationBenchmark.transformation_16 improved fjp 1 thrpt 10 2.070 ± 0.047 ops/us
[info] TransformationBenchmark.transformation_2 stdlib fjp 1 thrpt 10 0.272 ± 0.006 ops/us
[info] TransformationBenchmark.transformation_2 improved fjp 1 thrpt 10 0.263 ± 0.007 ops/us
[info] TransformationBenchmark.transformation_4 stdlib fjp 1 thrpt 10 0.540 ± 0.008 ops/us
[info] TransformationBenchmark.transformation_4 improved fjp 1 thrpt 10 0.533 ± 0.010 ops/us
[info] TransformationBenchmark.transformation_64 stdlib fjp 1 thrpt 10 4.623 ± 0.084 ops/us
[info] TransformationBenchmark.transformation_64 improved fjp 1 thrpt 10 6.422 ± 0.181 ops/us
[info] TransformationBenchmark.transformation_8192 stdlib fjp 1 thrpt 10 10.199 ± 0.098 ops/us
[info] TransformationBenchmark.transformation_8192 improved fjp 1 thrpt 10 19.541 ± 0.201 ops/us
[info] scala.future.TransformationBenchmark.transformation_1024_impl=improved_pool=fjp_threads=1 19 ops/us
[info] scala.future.TransformationBenchmark.transformation_1024_impl=stdlib_pool=fjp_threads=1 9 ops/us
[info] scala.future.TransformationBenchmark.transformation_16_impl=improved_pool=fjp_threads=1 2 ops/us
[info] scala.future.TransformationBenchmark.transformation_16_impl=stdlib_pool=fjp_threads=1 2 ops/us
[info] scala.future.TransformationBenchmark.transformation_1_impl=improved_pool=fjp_threads=1 0 ops/us
[info] scala.future.TransformationBenchmark.transformation_1_impl=stdlib_pool=fjp_threads=1 0 ops/us
[info] scala.future.TransformationBenchmark.transformation_2_impl=improved_pool=fjp_threads=1 0 ops/us
[info] scala.future.TransformationBenchmark.transformation_2_impl=stdlib_pool=fjp_threads=1 0 ops/us
[info] scala.future.TransformationBenchmark.transformation_4_impl=improved_pool=fjp_threads=1 1 ops/us
[info] scala.future.TransformationBenchmark.transformation_4_impl=stdlib_pool=fjp_threads=1 1 ops/us
[info] scala.future.TransformationBenchmark.transformation_64_impl=improved_pool=fjp_threads=1 6 ops/us
[info] scala.future.TransformationBenchmark.transformation_64_impl=stdlib_pool=fjp_threads=1 5 ops/us
[info] scala.future.TransformationBenchmark.transformation_8192_impl=improved_pool=fjp_threads=1 20 ops/us
[info] scala.future.TransformationBenchmark.transformation_8192_impl=stdlib_pool=fjp_threads=1 10 ops/us
>jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .CallbackBenchmark*
[info] # Run complete. Total time: 00:05:58
[info]
[info] Benchmark (impl) (pool) (threads) Mode Cnt Score Error Units
[info] CallbackBenchmark.onComplete_1 stdlib fjp 1 thrpt 10 20.906 ± 0.086 ops/us
[info] CallbackBenchmark.onComplete_1 improved fjp 1 thrpt 10 22.638 ± 0.135 ops/us
[info] CallbackBenchmark.onComplete_1024 stdlib fjp 1 thrpt 10 48.793 ± 0.278 ops/us
[info] CallbackBenchmark.onComplete_1024 improved fjp 1 thrpt 10 61.475 ± 0.558 ops/us
[info] CallbackBenchmark.onComplete_16 stdlib fjp 1 thrpt 10 45.063 ± 0.161 ops/us
[info] CallbackBenchmark.onComplete_16 improved fjp 1 thrpt 10 48.555 ± 0.146 ops/us
[info] CallbackBenchmark.onComplete_2 stdlib fjp 1 thrpt 10 28.859 ± 0.057 ops/us
[info] CallbackBenchmark.onComplete_2 improved fjp 1 thrpt 10 32.741 ± 0.346 ops/us
[info] CallbackBenchmark.onComplete_4 stdlib fjp 1 thrpt 10 36.190 ± 0.390 ops/us
[info] CallbackBenchmark.onComplete_4 improved fjp 1 thrpt 10 38.684 ± 0.113 ops/us
[info] CallbackBenchmark.onComplete_64 stdlib fjp 1 thrpt 10 46.715 ± 1.320 ops/us
[info] CallbackBenchmark.onComplete_64 improved fjp 1 thrpt 10 59.903 ± 0.451 ops/us
[info] CallbackBenchmark.onComplete_8192 stdlib fjp 1 thrpt 10 44.142 ± 1.034 ops/us
[info] CallbackBenchmark.onComplete_8192 improved fjp 1 thrpt 10 55.726 ± 4.163 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1024_impl=improved_pool=fjp_threads=1 61 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1024_impl=stdlib_pool=fjp_threads=1 49 ops/us
[info] scala.future.CallbackBenchmark.onComplete_16_impl=improved_pool=fjp_threads=1 49 ops/us
[info] scala.future.CallbackBenchmark.onComplete_16_impl=stdlib_pool=fjp_threads=1 45 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1_impl=improved_pool=fjp_threads=1 23 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1_impl=stdlib_pool=fjp_threads=1 21 ops/us
[info] scala.future.CallbackBenchmark.onComplete_2_impl=improved_pool=fjp_threads=1 33 ops/us
[info] scala.future.CallbackBenchmark.onComplete_2_impl=stdlib_pool=fjp_threads=1 29 ops/us
[info] scala.future.CallbackBenchmark.onComplete_4_impl=improved_pool=fjp_threads=1 39 ops/us
[info] scala.future.CallbackBenchmark.onComplete_4_impl=stdlib_pool=fjp_threads=1 36 ops/us
[info] scala.future.CallbackBenchmark.onComplete_64_impl=improved_pool=fjp_threads=1 60 ops/us
[info] scala.future.CallbackBenchmark.onComplete_64_impl=stdlib_pool=fjp_threads=1 47 ops/us
[info] scala.future.CallbackBenchmark.onComplete_8192_impl=improved_pool=fjp_threads=1 56 ops/us
[info] scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib_pool=fjp_threads=1 44 ops/us
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .CompletionWithBenchmark*
[info] # Run complete. Total time: 00:12:03
[info]
[info] Benchmark (impl) (result) Mode Cnt Score Error Units
[info] CompletionWithBenchmark.tryCompleteWith_1 stdlib success thrpt 10 3.257 ± 0.023 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1 stdlib failure thrpt 10 3.502 ± 0.066 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1 improved success thrpt 10 5.415 ± 0.052 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1 improved failure thrpt 10 4.551 ± 0.053 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 stdlib success thrpt 10 5.402 ± 0.090 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 stdlib failure thrpt 10 4.828 ± 0.061 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 improved success thrpt 10 8.589 ± 0.067 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 improved failure thrpt 10 8.612 ± 0.141 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 stdlib success thrpt 10 5.158 ± 0.153 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 stdlib failure thrpt 10 4.690 ± 0.064 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 improved success thrpt 10 8.336 ± 0.220 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 improved failure thrpt 10 8.291 ± 0.093 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 stdlib success thrpt 10 4.469 ± 0.046 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 stdlib failure thrpt 10 4.001 ± 0.042 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 improved success thrpt 10 5.538 ± 0.057 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 improved failure thrpt 10 5.742 ± 0.183 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 stdlib success thrpt 10 4.871 ± 0.065 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 stdlib failure thrpt 10 4.491 ± 0.009 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 improved success thrpt 10 8.105 ± 0.034 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 improved failure thrpt 10 7.318 ± 0.026 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 stdlib success thrpt 10 5.494 ± 0.026 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 stdlib failure thrpt 10 4.976 ± 0.010 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 improved success thrpt 10 9.498 ± 0.150 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 improved failure thrpt 10 8.863 ± 0.191 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 stdlib success thrpt 10 5.611 ± 0.096 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 stdlib failure thrpt 10 5.262 ± 0.034 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 improved success thrpt 10 8.858 ± 0.241 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 improved failure thrpt 10 9.024 ± 0.169 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=improved_result=failure 9 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=improved_result=success 9 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=stdlib_result=failure 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=improved_result=failure 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=improved_result=success 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=stdlib_result=failure 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=improved_result=failure 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=improved_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=stdlib_result=success 3 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=improved_result=failure 6 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=improved_result=success 6 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=stdlib_result=success 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=improved_result=failure 7 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=improved_result=success 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=improved_result=failure 9 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=improved_result=success 9 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=stdlib_result=failure 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=improved_result=failure 9 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=improved_result=success 9 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=stdlib_result=failure 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=stdlib_result=success 6 ops/us
> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p pool=fjp -p threads=1 -i 10 -wi 15 -f1 -t1 .CompletionBenchmark*
[info] # Run complete. Total time: 00:11:55
[info]
[info] Benchmark (impl) (result) Mode Cnt Score Error Units
[info] CompletionBenchmark.tryComplete_1 stdlib success thrpt 10 29.215 ± 0.251 ops/us
[info] CompletionBenchmark.tryComplete_1 stdlib failure thrpt 10 18.751 ± 0.110 ops/us
[info] CompletionBenchmark.tryComplete_1 improved success thrpt 10 28.523 ± 0.263 ops/us
[info] CompletionBenchmark.tryComplete_1 improved failure thrpt 10 21.073 ± 0.288 ops/us
[info] CompletionBenchmark.tryComplete_1024 stdlib success thrpt 10 687.080 ± 2.410 ops/us
[info] CompletionBenchmark.tryComplete_1024 stdlib failure thrpt 10 49.014 ± 0.089 ops/us
[info] CompletionBenchmark.tryComplete_1024 improved success thrpt 10 1023.992 ± 2.692 ops/us
[info] CompletionBenchmark.tryComplete_1024 improved failure thrpt 10 1005.651 ± 2.545 ops/us
[info] CompletionBenchmark.tryComplete_16 stdlib success thrpt 10 239.217 ± 2.412 ops/us
[info] CompletionBenchmark.tryComplete_16 stdlib failure thrpt 10 44.493 ± 0.093 ops/us
[info] CompletionBenchmark.tryComplete_16 improved success thrpt 10 298.709 ± 2.224 ops/us
[info] CompletionBenchmark.tryComplete_16 improved failure thrpt 10 231.805 ± 1.807 ops/us
[info] CompletionBenchmark.tryComplete_2 stdlib success thrpt 10 47.226 ± 1.117 ops/us
[info] CompletionBenchmark.tryComplete_2 stdlib failure thrpt 10 28.046 ± 0.168 ops/us
[info] CompletionBenchmark.tryComplete_2 improved success thrpt 10 49.470 ± 0.389 ops/us
[info] CompletionBenchmark.tryComplete_2 improved failure thrpt 10 37.818 ± 0.403 ops/us
[info] CompletionBenchmark.tryComplete_4 stdlib success thrpt 10 88.155 ± 0.901 ops/us
[info] CompletionBenchmark.tryComplete_4 stdlib failure thrpt 10 35.182 ± 0.160 ops/us
[info] CompletionBenchmark.tryComplete_4 improved success thrpt 10 92.601 ± 1.530 ops/us
[info] CompletionBenchmark.tryComplete_4 improved failure thrpt 10 72.825 ± 0.465 ops/us
[info] CompletionBenchmark.tryComplete_64 stdlib success thrpt 10 453.317 ± 3.969 ops/us
[info] CompletionBenchmark.tryComplete_64 stdlib failure thrpt 10 47.168 ± 0.078 ops/us
[info] CompletionBenchmark.tryComplete_64 improved success thrpt 10 564.887 ± 8.966 ops/us
[info] CompletionBenchmark.tryComplete_64 improved failure thrpt 10 497.314 ± 3.831 ops/us
[info] CompletionBenchmark.tryComplete_8192 stdlib success thrpt 10 717.950 ± 2.236 ops/us
[info] CompletionBenchmark.tryComplete_8192 stdlib failure thrpt 10 49.580 ± 3.462 ops/us
[info] CompletionBenchmark.tryComplete_8192 improved success thrpt 10 1067.990 ± 9.811 ops/us
[info] CompletionBenchmark.tryComplete_8192 improved failure thrpt 10 1070.038 ± 2.257 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=improved_result=failure 1006 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=improved_result=success 1024 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=stdlib_result=failure 49 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=stdlib_result=success 687 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=improved_result=failure 232 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=improved_result=success 299 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=stdlib_result=failure 44 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=stdlib_result=success 239 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=failure 21 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=success 29 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=stdlib_result=failure 19 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=stdlib_result=success 29 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=improved_result=failure 38 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=improved_result=success 49 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=stdlib_result=failure 28 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=stdlib_result=success 47 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=improved_result=failure 73 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=improved_result=success 93 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=stdlib_result=failure 35 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=stdlib_result=success 88 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=improved_result=failure 497 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=improved_result=success 565 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=stdlib_result=failure 47 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=stdlib_result=success 453 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=failure 1070 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=success 1068 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=failure 50 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=success 718 ops/us
i7 32GB DDR4 @ 2133MHz
[info] Result "scala.future.TransformationBenchmark.transformation_8192":
[info] 14.740 ±(99.9%) 4.271 ops/us [Average]
[info] (min, avg, max) = (11.641, 14.740, 18.341), stdev = 2.825
[info] CI (99.9%): [10.469, 19.012] (assumes normal distribution)
[info]
[info]
[info] # Run complete. Total time: 00:05:57
[info]
[info] Benchmark (impl) (pool) (threads) Mode Cnt Score Error Units
[info] TransformationBenchmark.transformation_1 stdlib fjp 1 thrpt 10 0.155 ± 0.003 ops/us
[info] TransformationBenchmark.transformation_1 improved fjp 1 thrpt 10 0.170 ± 0.051 ops/us
[info] TransformationBenchmark.transformation_1024 stdlib fjp 1 thrpt 10 6.901 ± 0.141 ops/us
[info] TransformationBenchmark.transformation_1024 improved fjp 1 thrpt 10 16.790 ± 2.441 ops/us
[info] TransformationBenchmark.transformation_16 stdlib fjp 1 thrpt 10 1.848 ± 0.052 ops/us
[info] TransformationBenchmark.transformation_16 improved fjp 1 thrpt 10 2.230 ± 0.071 ops/us
[info] TransformationBenchmark.transformation_2 stdlib fjp 1 thrpt 10 0.308 ± 0.003 ops/us
[info] TransformationBenchmark.transformation_2 improved fjp 1 thrpt 10 0.326 ± 0.049 ops/us
[info] TransformationBenchmark.transformation_4 stdlib fjp 1 thrpt 10 0.624 ± 0.084 ops/us
[info] TransformationBenchmark.transformation_4 improved fjp 1 thrpt 10 0.636 ± 0.082 ops/us
[info] TransformationBenchmark.transformation_64 stdlib fjp 1 thrpt 10 4.399 ± 0.063 ops/us
[info] TransformationBenchmark.transformation_64 improved fjp 1 thrpt 10 6.745 ± 0.231 ops/us
[info] TransformationBenchmark.transformation_8192 stdlib fjp 1 thrpt 10 7.391 ± 0.193 ops/us
[info] TransformationBenchmark.transformation_8192 improved fjp 1 thrpt 10 14.740 ± 4.271 ops/us
[info] scala.future.TransformationBenchmark.transformation_1024_impl=improved_pool=fjp_threads=1 17 ops/us
[info] scala.future.TransformationBenchmark.transformation_1024_impl=stdlib_pool=fjp_threads=1 7 ops/us
[info] scala.future.TransformationBenchmark.transformation_16_impl=improved_pool=fjp_threads=1 2 ops/us
[info] scala.future.TransformationBenchmark.transformation_16_impl=stdlib_pool=fjp_threads=12ops/us
[info] scala.future.TransformationBenchmark.transformation_1_impl=improved_pool=fjp_threads=10 ops/us
[info] scala.future.TransformationBenchmark.transformation_1_impl=stdlib_pool=fjp_threads=1 0ops/us
[info] scala.future.TransformationBenchmark.transformation_2_impl=improved_pool=fjp_threads=10 ops/us
[info] scala.future.TransformationBenchmark.transformation_2_impl=stdlib_pool=fjp_threads=1 0ops/us
[info] scala.future.TransformationBenchmark.transformation_4_impl=improved_pool=fjp_threads=11 ops/us
[info] scala.future.TransformationBenchmark.transformation_4_impl=stdlib_pool=fjp_threads=1 1ops/us
[info] scala.future.TransformationBenchmark.transformation_64_impl=improved_pool=fjp_threads=1 7 ops/us
[info] scala.future.TransformationBenchmark.transformation_64_impl=stdlib_pool=fjp_threads=14ops/us
[info] scala.future.TransformationBenchmark.transformation_8192_impl=improved_pool=fjp_threads=1 15 ops/us
[info] scala.future.TransformationBenchmark.transformation_8192_impl=stdlib_pool=fjp_threads=1 7 ops/us
[info] Result "scala.future.CallbackBenchmark.onComplete_8192":
[info] 49.861 ±(99.9%) 5.720 ops/us [Average]
[info] (min, avg, max) = (47.079, 49.861, 56.413), stdev = 3.783
[info] CI (99.9%): [44.141, 55.580] (assumes normal distribution)
[info]
[info]
[info] # Run complete. Total time: 00:05:54
[info]
[info] Benchmark (impl) (pool) (threads) Mode Cnt Score Error Units
[info] CallbackBenchmark.onComplete_1 stdlib fjp 1 thrpt 10 21.110 ± 0.342 ops/us
[info] CallbackBenchmark.onComplete_1 improved fjp 1 thrpt 10 25.511 ± 0.166 ops/us
[info] CallbackBenchmark.onComplete_1024 stdlib fjp 1 thrpt 10 38.052 ± 0.090 ops/us
[info] CallbackBenchmark.onComplete_1024 improved fjp 1 thrpt 10 52.904 ± 0.573 ops/us
[info] CallbackBenchmark.onComplete_16 stdlib fjp 1 thrpt 10 36.827 ± 0.270 ops/us
[info] CallbackBenchmark.onComplete_16 improved fjp 1 thrpt 10 38.935 ± 0.344 ops/us
[info] CallbackBenchmark.onComplete_2 stdlib fjp 1 thrpt 10 27.046 ± 0.223 ops/us
[info] CallbackBenchmark.onComplete_2 improved fjp 1 thrpt 10 34.077 ± 0.381 ops/us
[info] CallbackBenchmark.onComplete_4 stdlib fjp 1 thrpt 10 31.698 ± 0.237 ops/us
[info] CallbackBenchmark.onComplete_4 improved fjp 1 thrpt 10 33.668 ± 0.265 ops/us
[info] CallbackBenchmark.onComplete_64 stdlib fjp 1 thrpt 10 38.727 ± 0.461 ops/us
[info] CallbackBenchmark.onComplete_64 improved fjp 1 thrpt 10 51.312 ± 0.235 ops/us
[info] CallbackBenchmark.onComplete_8192 stdlib fjp 1 thrpt 10 38.602 ± 0.251 ops/us
[info] CallbackBenchmark.onComplete_8192 improved fjp 1 thrpt 10 49.861 ± 5.720 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1024_impl=improved_pool=fjp_threads=1 53 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1024_impl=stdlib_pool=fjp_threads=1 38 ops/us
[info] scala.future.CallbackBenchmark.onComplete_16_impl=improved_pool=fjp_threads=1 39 ops/us
[info] scala.future.CallbackBenchmark.onComplete_16_impl=stdlib_pool=fjp_threads=1 37 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1_impl=improved_pool=fjp_threads=1 26 ops/us
[info] scala.future.CallbackBenchmark.onComplete_1_impl=stdlib_pool=fjp_threads=1 21 ops/us
[info] scala.future.CallbackBenchmark.onComplete_2_impl=improved_pool=fjp_threads=1 34 ops/us
[info] scala.future.CallbackBenchmark.onComplete_2_impl=stdlib_pool=fjp_threads=1 27 ops/us
[info] scala.future.CallbackBenchmark.onComplete_4_impl=improved_pool=fjp_threads=1 34 ops/us
[info] scala.future.CallbackBenchmark.onComplete_4_impl=stdlib_pool=fjp_threads=1 32 ops/us
[info] scala.future.CallbackBenchmark.onComplete_64_impl=improved_pool=fjp_threads=1 51 ops/us
[info] scala.future.CallbackBenchmark.onComplete_64_impl=stdlib_pool=fjp_threads=1 39 ops/us
[info] scala.future.CallbackBenchmark.onComplete_8192_impl=improved_pool=fjp_threads=1 50 ops/us
[info] scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib_pool=fjp_threads=1 39 ops/us
[info] Result "scala.future.CompletionWithBenchmark.tryCompleteWith_8192":
[info] 7.556 ±(99.9%) 0.035 ops/us [Average]
[info] (min, avg, max) = (7.525, 7.556, 7.598), stdev = 0.023
[info] CI (99.9%): [7.522, 7.591] (assumes normal distribution)
[info]
[info]
[info] # Run complete. Total time: 00:11:55
[info]
[info] Benchmark (impl) (result) Mode Cnt Score Error Units
[info] CompletionWithBenchmark.tryCompleteWith_1 stdlib success thrpt 10 3.465 ± 0.020 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1 stdlib failure thrpt 10 3.025 ± 0.022 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1 improved success thrpt 10 4.846 ± 0.040 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1 improved failure thrpt 10 4.038 ± 0.035 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 stdlib success thrpt 10 4.644 ± 0.057 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 stdlib failure thrpt 10 4.329 ± 0.030 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 improved success thrpt 10 7.660 ± 0.050 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024 improved failure thrpt 10 7.724 ± 0.045 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 stdlib success thrpt 10 4.618 ± 0.040 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 stdlib failure thrpt 10 4.105 ± 0.014 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 improved success thrpt 10 7.344 ± 0.042 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16 improved failure thrpt 10 7.380 ± 0.030 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 stdlib success thrpt 10 4.040 ± 0.018 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 stdlib failure thrpt 10 3.443 ± 0.035 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 improved success thrpt 10 5.969 ± 0.034 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2 improved failure thrpt 10 5.169 ± 0.037 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 stdlib success thrpt 10 4.240 ± 0.024 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 stdlib failure thrpt 10 3.743 ± 0.031 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 improved success thrpt 10 6.788 ± 0.037 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4 improved failure thrpt 10 6.189 ± 0.059 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 stdlib success thrpt 10 4.714 ± 0.041 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 stdlib failure thrpt 10 4.090 ± 0.027 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 improved success thrpt 10 7.521 ± 0.044 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64 improved failure thrpt 10 7.393 ± 0.032 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 stdlib success thrpt 10 4.630 ± 0.045 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 stdlib failure thrpt 10 4.345 ± 0.032 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 improved success thrpt 10 7.599 ± 0.023 ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192 improved failure thrpt 10 7.556 ± 0.035 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=improved_result=failure 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=improved_result=success 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=improved_result=failure 7 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=improved_result=success 7 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_16_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=improved_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=improved_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=stdlib_result=failure 3 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_1_impl=stdlib_result=success 3 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=improved_result=failure 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=improved_result=success 6 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=stdlib_result=failure 3 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_2_impl=stdlib_result=success 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=improved_result=failure 6 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=improved_result=success 7 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_4_impl=stdlib_result=success 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=improved_result=failure 7 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=improved_result=success 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=stdlib_result=success 5 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=improved_result=failure 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=improved_result=success 8 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=stdlib_result=failure 4 ops/us
[info] scala.future.CompletionWithBenchmark.tryCompleteWith_8192_impl=stdlib_result=success 5 ops/us
[info] Result "scala.future.CompletionBenchmark.tryComplete_8192":
[info] 687.949 ±(99.9%) 0.456 ops/us [Average]
[info] (min, avg, max) = (687.437, 687.949, 688.570), stdev = 0.301
[info] CI (99.9%): [687.493, 688.405] (assumes normal distribution)
[info]
[info]
[info] # Run complete. Total time: 00:11:48
[info]
[info] Benchmark (impl) (result) Mode Cnt Score Error Units
[info] CompletionBenchmark.tryComplete_1 stdlib success thrpt 10 33.644 ± 0.110 ops/us
[info] CompletionBenchmark.tryComplete_1 stdlib failure thrpt 10 17.823 ± 0.110 ops/us
[info] CompletionBenchmark.tryComplete_1 improved success thrpt 10 31.379 ± 0.155 ops/us
[info] CompletionBenchmark.tryComplete_1 improved failure thrpt 10 19.834 ± 0.121 ops/us
[info] CompletionBenchmark.tryComplete_1024 stdlib success thrpt 10 378.529 ± 2.911 ops/us
[info] CompletionBenchmark.tryComplete_1024 stdlib failure thrpt 10 39.280 ± 0.331 ops/us
[info] CompletionBenchmark.tryComplete_1024 improved success thrpt 10 826.627 ± 10.282 ops/us
[info] CompletionBenchmark.tryComplete_1024 improved failure thrpt 10 820.172 ± 5.641 ops/us
[info] CompletionBenchmark.tryComplete_16 stdlib success thrpt 10 251.321 ± 1.813 ops/us
[info] CompletionBenchmark.tryComplete_16 stdlib failure thrpt 10 36.846 ± 0.224 ops/us
[info] CompletionBenchmark.tryComplete_16 improved success thrpt 10 289.859 ± 0.921 ops/us
[info] CompletionBenchmark.tryComplete_16 improved failure thrpt 10 223.847 ± 1.592 ops/us
[info] CompletionBenchmark.tryComplete_2 stdlib success thrpt 10 51.896 ± 0.144 ops/us
[info] CompletionBenchmark.tryComplete_2 stdlib failure thrpt 10 24.898 ± 0.301 ops/us
[info] CompletionBenchmark.tryComplete_2 improved success thrpt 10 51.125 ± 0.127 ops/us
[info] CompletionBenchmark.tryComplete_2 improved failure thrpt 10 36.193 ± 0.439 ops/us
[info] CompletionBenchmark.tryComplete_4 stdlib success thrpt 10 94.477 ± 0.316 ops/us
[info] CompletionBenchmark.tryComplete_4 stdlib failure thrpt 10 30.565 ± 0.197 ops/us
[info] CompletionBenchmark.tryComplete_4 improved success thrpt 10 97.251 ± 0.335 ops/us
[info] CompletionBenchmark.tryComplete_4 improved failure thrpt 10 69.855 ± 0.128 ops/us
[info] CompletionBenchmark.tryComplete_64 stdlib success thrpt 10 355.271 ± 4.243 ops/us
[info] CompletionBenchmark.tryComplete_64 stdlib failure thrpt 10 38.420 ± 0.216 ops/us
[info] CompletionBenchmark.tryComplete_64 improved success thrpt 10 575.297 ± 5.536 ops/us
[info] CompletionBenchmark.tryComplete_64 improved failure thrpt 10 501.714 ± 6.928 ops/us
[info] CompletionBenchmark.tryComplete_8192 stdlib success thrpt 10 382.756 ± 1.102 ops/us
[info] CompletionBenchmark.tryComplete_8192 stdlib failure thrpt 10 41.690 ± 2.324 ops/us
[info] CompletionBenchmark.tryComplete_8192 improved success thrpt 10 687.765 ± 1.608 ops/us
[info] CompletionBenchmark.tryComplete_8192 improved failure thrpt 10 687.949 ± 0.456 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=improved_result=failure 820 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=improved_result=success 827 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=stdlib_result=failure 39 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1024_impl=stdlib_result=success 379 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=improved_result=failure 224 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=improved_result=success 290 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=stdlib_result=failure 37 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_16_impl=stdlib_result=success 251 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=failure 20 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=success 31 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=stdlib_result=failure 18 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_1_impl=stdlib_result=success 34 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=improved_result=failure 36 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=improved_result=success 51 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=stdlib_result=failure 25 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_2_impl=stdlib_result=success 52 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=improved_result=failure 70 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=improved_result=success 97 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=stdlib_result=failure 31 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_4_impl=stdlib_result=success 94 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=improved_result=failure 502 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=improved_result=success 575 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=stdlib_result=failure 38 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_64_impl=stdlib_result=success 355 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=failure 688 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=success 688 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=failure 42 ops/us
[info] scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=success 383 ops/us
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hi
I ran into this error several times. Platform is MBP 2016. Shout if I can assist in nailing this.
[info] # JMH version: 1.19
[info] # VM version: JDK 1.8.0_45, VM 25.45-b02
[info] # VM invoker: /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/bin/java
[info] # VM options: -ea -server -XX:+UseCompressedOops -XX:+AggressiveOpts -XX:+AlwaysPreTouch -XX:+UseCondCardMark
[info] # Warmup: 15 iterations, 1 s each
[info] # Measurement: 10 iterations, 1 s each
[info] # Timeout: 10 min per iteration
[info] # Threads: 1 thread, will synchronize iterations
[info] # Benchmark mode: Throughput, ops/time
[info] # Benchmark: scala.future.TransformationBenchmark.transformation_1
[info] # Parameters: (impl = improved, pool = fjp, threads = 1)
[info]
[info] # Run progress: 7.14% complete, ETA 00:05:36
[info] # Fork: 1 of 1
[info] # Warmup Iteration 1:
[info]
[info] java.util.concurrent.TimeoutException: Future timed out after [60 seconds]
[info] at scala.future.impl.Promise$DefaultPromise.ready(Promise.scala:248)
[info] at scala.future.impl.Promise$DefaultPromise.result(Promise.scala:252)
[info] at scala.concurrent.Await$.$anonfun$result$1(package.scala:190)
[info] at scala.concurrent.Await$$$Lambda$15/1725172.apply(Unknown Source)
[info] at scala.concurrent.BlockContext$DefaultBlockContext$.blockOn(BlockContext.scala:53)
[info] at scala.concurrent.Await$.result(package.scala:123)
[info] at scala.future.TransformationBenchmark.transformation_1(TransformationBenchmark.scala:125)
[info] at scala.future.generated.TransformationBenchmark_transformation_1_jmhTest.transformation_1_thrpt_jmhStub(TransformationBenchmark_transformation_1_jmhTest.java:239)
[info] at scala.future.generated.TransformationBenchmark_transformation_1_jmhTest.transformation_1_Throughput(TransformationBenchmark_transformation_1_jmhTest.java:121)
[info] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[info] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[info] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[info] at java.lang.reflect.Method.invoke(Method.java:497)
[info] at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:453)
[info] at org.openjdk.jmh.runner.BenchmarkHandler$BenchmarkTask.call(BenchmarkHandler.java:437)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
[info] at java.util.concurrent.FutureTask.run(FutureTask.java:266)
[info] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[info] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[info] at java.lang.Thread.run(Thread.java:745)
[info]