scala-futures icon indicating copy to clipboard operation
scala-futures copied to clipboard

Benchmark run results on i7-7700HQ CPU @ 2.80GHz

Open ktoso opened this issue 6 years ago • 14 comments

Some of the final run results from running sbt:benches> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p threads=1 -p completed=pre,post -i 30 -wi 15 -f 1 -t 1 .*

cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (HT enabled) memory: 16G DDR4 2400Mhz (Dell XPS15, mid 2017)

Did not review the changes in the branch yet though, just let it running on the side, let me know how I can help ;)

[info] # Run complete. Total time: 02:19:39
[info] Benchmark                                       (impl)  (pool)  (recursion)  (result)  (threads)   Mode  Cnt       Score      Error   Units
[info] AndThenBenchmark.improved_post                     N/A     fjp         1024       N/A          1  thrpt   30       9.442 ±    0.058  ops/ms
[info] AndThenBenchmark.improved_post                     N/A     fix         1024       N/A          1  thrpt   30       7.916 ±    0.037  ops/ms
[info] AndThenBenchmark.improved_post                     N/A     fie         1024       N/A          1  thrpt   30      23.577 ±    0.135  ops/ms
[info] AndThenBenchmark.improved_pre                      N/A     fjp         1024       N/A          1  thrpt   30      12.072 ±    0.079  ops/ms
[info] AndThenBenchmark.improved_pre                      N/A     fix         1024       N/A          1  thrpt   30       7.779 ±    0.156  ops/ms
[info] AndThenBenchmark.improved_pre                      N/A     fie         1024       N/A          1  thrpt   30      10.143 ±    0.057  ops/ms
[info] AndThenBenchmark.stdlib_post                       N/A     fjp         1024       N/A          1  thrpt   30       7.888 ±    0.080  ops/ms
[info] AndThenBenchmark.stdlib_post                       N/A     fix         1024       N/A          1  thrpt   30       7.141 ±    0.057  ops/ms
[info] AndThenBenchmark.stdlib_post                       N/A     fie         1024       N/A          1  thrpt   30      15.335 ±    0.394  ops/ms
[info] AndThenBenchmark.stdlib_pre                        N/A     fjp         1024       N/A          1  thrpt   30       9.327 ±    0.061  ops/ms
[info] AndThenBenchmark.stdlib_pre                        N/A     fix         1024       N/A          1  thrpt   30       9.131 ±    0.058  ops/ms
[info] AndThenBenchmark.stdlib_pre                        N/A     fie         1024       N/A          1  thrpt   30       5.247 ±    0.045  ops/ms
[info] CallbackBenchmark.onComplete_1                  stdlib     fjp          N/A       N/A          1  thrpt   30      23.235 ±    0.184  ops/us
[info] CallbackBenchmark.onComplete_1                  stdlib     fix          N/A       N/A          1  thrpt   30      23.120 ±    0.158  ops/us
[info] CallbackBenchmark.onComplete_1                improved     fjp          N/A       N/A          1  thrpt   30      25.113 ±    0.175  ops/us
[info] CallbackBenchmark.onComplete_1                improved     fix          N/A       N/A          1  thrpt   30      25.800 ±    0.588  ops/us
[info] CallbackBenchmark.onComplete_1024               stdlib     fjp          N/A       N/A          1  thrpt   30      39.628 ±    0.226  ops/us
[info] CallbackBenchmark.onComplete_1024               stdlib     fix          N/A       N/A          1  thrpt   30      39.641 ±    0.254  ops/us
[info] CallbackBenchmark.onComplete_1024             improved     fjp          N/A       N/A          1  thrpt   30      49.798 ±    0.408  ops/us
[info] CallbackBenchmark.onComplete_1024             improved     fix          N/A       N/A          1  thrpt   30      49.822 ±    0.367  ops/us
[info] CallbackBenchmark.onComplete_16                 stdlib     fjp          N/A       N/A          1  thrpt   30      38.818 ±    0.270  ops/us
[info] CallbackBenchmark.onComplete_16                 stdlib     fix          N/A       N/A          1  thrpt   30      38.806 ±    0.205  ops/us
[info] CallbackBenchmark.onComplete_16               improved     fjp          N/A       N/A          1  thrpt   30      44.299 ±    0.318  ops/us
[info] CallbackBenchmark.onComplete_16               improved     fix          N/A       N/A          1  thrpt   30      44.359 ±    0.213  ops/us
[info] CallbackBenchmark.onComplete_2                  stdlib     fjp          N/A       N/A          1  thrpt   30      28.621 ±    0.230  ops/us
[info] CallbackBenchmark.onComplete_2                  stdlib     fix          N/A       N/A          1  thrpt   30      28.640 ±    0.199  ops/us
[info] CallbackBenchmark.onComplete_2                improved     fjp          N/A       N/A          1  thrpt   30      34.008 ±    0.230  ops/us
[info] CallbackBenchmark.onComplete_2                improved     fix          N/A       N/A          1  thrpt   30      33.425 ±    0.241  ops/us
[info] CallbackBenchmark.onComplete_4                  stdlib     fjp          N/A       N/A          1  thrpt   30      33.703 ±    0.182  ops/us
[info] CallbackBenchmark.onComplete_4                  stdlib     fix          N/A       N/A          1  thrpt   30      33.715 ±    0.229  ops/us
[info] CallbackBenchmark.onComplete_4                improved     fjp          N/A       N/A          1  thrpt   30      39.027 ±    0.268  ops/us
[info] CallbackBenchmark.onComplete_4                improved     fix          N/A       N/A          1  thrpt   30      36.670 ±    0.267  ops/us
[info] CallbackBenchmark.onComplete_64                 stdlib     fjp          N/A       N/A          1  thrpt   30      37.859 ±    0.741  ops/us
[info] CallbackBenchmark.onComplete_64                 stdlib     fix          N/A       N/A          1  thrpt   30      40.171 ±    0.647  ops/us
[info] CallbackBenchmark.onComplete_64               improved     fjp          N/A       N/A          1  thrpt   30      49.491 ±    0.376  ops/us
[info] CallbackBenchmark.onComplete_64               improved     fix          N/A       N/A          1  thrpt   30      49.445 ±    0.363  ops/us
[info] CallbackBenchmark.onComplete_8192               stdlib     fjp          N/A       N/A          1  thrpt   30      40.593 ±    0.246  ops/us
[info] CallbackBenchmark.onComplete_8192               stdlib     fix          N/A       N/A          1  thrpt   30      39.652 ±    0.241  ops/us
[info] CallbackBenchmark.onComplete_8192             improved     fjp          N/A       N/A          1  thrpt   30      50.681 ±    0.819  ops/us
[info] CallbackBenchmark.onComplete_8192             improved     fix          N/A       N/A          1  thrpt   30      50.725 ±    0.708  ops/us
[info] CompletionBenchmark.tryComplete_1               stdlib     N/A          N/A   success        N/A  thrpt   30      35.770 ±    0.187  ops/us
[info] CompletionBenchmark.tryComplete_1               stdlib     N/A          N/A   failure        N/A  thrpt   30      18.842 ±    0.226  ops/us
[info] CompletionBenchmark.tryComplete_1             improved     N/A          N/A   success        N/A  thrpt   30      37.232 ±    0.229  ops/us
[info] CompletionBenchmark.tryComplete_1             improved     N/A          N/A   failure        N/A  thrpt   30      21.630 ±    0.097  ops/us
[info] CompletionBenchmark.tryComplete_8192            stdlib     N/A          N/A   success        N/A  thrpt   30     410.330 ±    2.061  ops/us
[info] CompletionBenchmark.tryComplete_8192            stdlib     N/A          N/A   failure        N/A  thrpt   30      43.142 ±    0.894  ops/us
[info] CompletionBenchmark.tryComplete_8192          improved     N/A          N/A   success        N/A  thrpt   30     737.878 ±    3.785  ops/us
[info] CompletionBenchmark.tryComplete_8192          improved     N/A          N/A   failure        N/A  thrpt   30     732.132 ±    4.137  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1       stdlib     N/A          N/A   success        N/A  thrpt   30       3.184 ±    0.023  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1       stdlib     N/A          N/A   failure        N/A  thrpt   30       2.797 ±    0.027  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1     improved     N/A          N/A   success        N/A  thrpt   30       5.255 ±    0.042  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1     improved     N/A          N/A   failure        N/A  thrpt   30       4.393 ±    0.064  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024    stdlib     N/A          N/A   success        N/A  thrpt   30       5.001 ±    0.046  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024    stdlib     N/A          N/A   failure        N/A  thrpt   30       4.405 ±    0.038  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024  improved     N/A          N/A   success        N/A  thrpt   30       7.772 ±    0.199  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_1024  improved     N/A          N/A   failure        N/A  thrpt   30       7.433 ±    0.084  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16      stdlib     N/A          N/A   success        N/A  thrpt   30       4.873 ±    0.030  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16      stdlib     N/A          N/A   failure        N/A  thrpt   30       4.406 ±    0.032  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16    improved     N/A          N/A   success        N/A  thrpt   30       7.290 ±    0.047  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_16    improved     N/A          N/A   failure        N/A  thrpt   30       7.085 ±    0.059  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2       stdlib     N/A          N/A   success        N/A  thrpt   30       4.269 ±    0.039  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2       stdlib     N/A          N/A   failure        N/A  thrpt   30       3.747 ±    0.020  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2     improved     N/A          N/A   success        N/A  thrpt   30       6.152 ±    0.035  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_2     improved     N/A          N/A   failure        N/A  thrpt   30       5.418 ±    0.027  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4       stdlib     N/A          N/A   success        N/A  thrpt   30       4.603 ±    0.030  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4       stdlib     N/A          N/A   failure        N/A  thrpt   30       3.983 ±    0.035  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4     improved     N/A          N/A   success        N/A  thrpt   30       6.752 ±    0.038  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_4     improved     N/A          N/A   failure        N/A  thrpt   30       5.951 ±    0.140  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64      stdlib     N/A          N/A   success        N/A  thrpt   30       4.644 ±    0.049  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64      stdlib     N/A          N/A   failure        N/A  thrpt   30       4.404 ±    0.030  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64    improved     N/A          N/A   success        N/A  thrpt   30       7.809 ±    0.048  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_64    improved     N/A          N/A   failure        N/A  thrpt   30       7.661 ±    0.057  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192    stdlib     N/A          N/A   success        N/A  thrpt   30       5.177 ±    0.031  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192    stdlib     N/A          N/A   failure        N/A  thrpt   30       4.492 ±    0.034  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192  improved     N/A          N/A   success        N/A  thrpt   30       7.427 ±    0.082  ops/us
[info] CompletionWithBenchmark.tryCompleteWith_8192  improved     N/A          N/A   failure        N/A  thrpt   30       7.662 ±    0.062  ops/us
[info] FilterBenchmark.improved_post                      N/A     fjp         1024       N/A          1  thrpt   30       8.892 ±    0.057  ops/ms
[info] FilterBenchmark.improved_post                      N/A     fix         1024       N/A          1  thrpt   30       8.020 ±    0.059  ops/ms
[info] FilterBenchmark.improved_post                      N/A     fie         1024       N/A          1  thrpt   30      20.954 ±    0.116  ops/ms
[info] FilterBenchmark.improved_pre                       N/A     fjp         1024       N/A          1  thrpt   30       9.918 ±    0.103  ops/ms
[info] FilterBenchmark.improved_pre                       N/A     fix         1024       N/A          1  thrpt   30       7.973 ±    0.054  ops/ms
[info] FilterBenchmark.improved_pre                       N/A     fie         1024       N/A          1  thrpt   30      11.554 ±    0.084  ops/ms
[info] FilterBenchmark.stdlib_post                        N/A     fjp         1024       N/A          1  thrpt   30       7.094 ±    0.050  ops/ms
[info] FilterBenchmark.stdlib_post                        N/A     fix         1024       N/A          1  thrpt   30       6.424 ±    0.052  ops/ms
[info] FilterBenchmark.stdlib_post                        N/A     fie         1024       N/A          1  thrpt   30       9.421 ±    0.376  ops/ms
[info] FilterBenchmark.stdlib_pre                         N/A     fjp         1024       N/A          1  thrpt   30       9.090 ±    0.066  ops/ms
[info] FilterBenchmark.stdlib_pre                         N/A     fix         1024       N/A          1  thrpt   30       9.119 ±    0.087  ops/ms
[info] FilterBenchmark.stdlib_pre                         N/A     fie         1024       N/A          1  thrpt   30       6.036 ±    0.040  ops/ms
[info] FlatMapBenchmark.improved_post                     N/A     fjp         1024       N/A          1  thrpt   30       7.860 ±    0.045  ops/ms
[info] FlatMapBenchmark.improved_post                     N/A     fix         1024       N/A          1  thrpt   30       6.823 ±    0.048  ops/ms
[info] FlatMapBenchmark.improved_post                     N/A     fie         1024       N/A          1  thrpt   30      19.014 ±    0.125  ops/ms
[info] FlatMapBenchmark.improved_pre                      N/A     fjp         1024       N/A          1  thrpt   30      10.227 ±    0.035  ops/ms
[info] FlatMapBenchmark.improved_pre                      N/A     fix         1024       N/A          1  thrpt   30       8.447 ±    0.040  ops/ms
[info] FlatMapBenchmark.improved_pre                      N/A     fie         1024       N/A          1  thrpt   30       9.141 ±    0.085  ops/ms
[info] FlatMapBenchmark.stdlib_post                       N/A     fjp         1024       N/A          1  thrpt   30       3.094 ±    0.024  ops/ms
[info] FlatMapBenchmark.stdlib_post                       N/A     fix         1024       N/A          1  thrpt   30       2.991 ±    0.028  ops/ms
[info] FlatMapBenchmark.stdlib_post                       N/A     fie         1024       N/A          1  thrpt   30       9.064 ±    0.150  ops/ms
[info] FlatMapBenchmark.stdlib_pre                        N/A     fjp         1024       N/A          1  thrpt   30       3.791 ±    0.040  ops/ms
[info] FlatMapBenchmark.stdlib_pre                        N/A     fix         1024       N/A          1  thrpt   30       3.186 ±    0.025  ops/ms
[info] FlatMapBenchmark.stdlib_pre                        N/A     fie         1024       N/A          1  thrpt   30       4.056 ±    0.033  ops/ms
[info] LoopBenchmark.improved_post                        N/A     fjp         1024       N/A          1  thrpt   30     646.594 ±   19.639  ops/ms
[info] LoopBenchmark.improved_post                        N/A     fix         1024       N/A          1  thrpt   30     334.330 ±    5.144  ops/ms
[info] LoopBenchmark.improved_post                        N/A     fie         1024       N/A          1  thrpt   30    4072.347 ±   24.316  ops/ms
[info] LoopBenchmark.improved_pre                         N/A     fjp         1024       N/A          1  thrpt   30     759.338 ±    9.861  ops/ms
[info] LoopBenchmark.improved_pre                         N/A     fix         1024       N/A          1  thrpt   30     478.384 ±   17.216  ops/ms
[info] LoopBenchmark.improved_pre                         N/A     fie         1024       N/A          1  thrpt   30    5397.723 ±   52.159  ops/ms
[info] LoopBenchmark.stdlib_post                          N/A     fjp         1024       N/A          1  thrpt   30     539.246 ±   14.650  ops/ms
[info] LoopBenchmark.stdlib_post                          N/A     fix         1024       N/A          1  thrpt   30     339.335 ±    5.080  ops/ms
[info] LoopBenchmark.stdlib_post                          N/A     fie         1024       N/A          1  thrpt   30    2528.564 ±   24.176  ops/ms
[info] LoopBenchmark.stdlib_pre                           N/A     fjp         1024       N/A          1  thrpt   30     735.438 ±   28.316  ops/ms
[info] LoopBenchmark.stdlib_pre                           N/A     fix         1024       N/A          1  thrpt   30     377.440 ±    5.640  ops/ms
[info] LoopBenchmark.stdlib_pre                           N/A     fie         1024       N/A          1  thrpt   30    4050.084 ±   42.613  ops/ms
[info] MapBenchmark.improved_post                         N/A     fjp         1024       N/A          1  thrpt   30       8.727 ±    0.036  ops/ms
[info] MapBenchmark.improved_post                         N/A     fix         1024       N/A          1  thrpt   30       8.097 ±    0.029  ops/ms
[info] MapBenchmark.improved_post                         N/A     fie         1024       N/A          1  thrpt   30      22.299 ±    0.153  ops/ms
[info] MapBenchmark.improved_pre                          N/A     fjp         1024       N/A          1  thrpt   30      11.032 ±    0.047  ops/ms
[info] MapBenchmark.improved_pre                          N/A     fix         1024       N/A          1  thrpt   30       9.403 ±    0.032  ops/ms
[info] MapBenchmark.improved_pre                          N/A     fie         1024       N/A          1  thrpt   30      10.972 ±    0.265  ops/ms
[info] MapBenchmark.stdlib_post                           N/A     fjp         1024       N/A          1  thrpt   30       6.537 ±    0.072  ops/ms
[info] MapBenchmark.stdlib_post                           N/A     fix         1024       N/A          1  thrpt   30       6.586 ±    0.054  ops/ms
[info] MapBenchmark.stdlib_post                           N/A     fie         1024       N/A          1  thrpt   30      14.646 ±    0.122  ops/ms
[info] MapBenchmark.stdlib_pre                            N/A     fjp         1024       N/A          1  thrpt   30       9.444 ±    0.060  ops/ms
[info] MapBenchmark.stdlib_pre                            N/A     fix         1024       N/A          1  thrpt   30       8.838 ±    0.089  ops/ms
[info] MapBenchmark.stdlib_pre                            N/A     fie         1024       N/A          1  thrpt   30       6.177 ±    0.058  ops/ms
[info] NoopBenchmark.improved_post                        N/A     fjp         1024       N/A          1  thrpt   30   39460.059 ±  319.250  ops/ms
[info] NoopBenchmark.improved_post                        N/A     fix         1024       N/A          1  thrpt   30   39419.224 ±  332.673  ops/ms
[info] NoopBenchmark.improved_post                        N/A     fie         1024       N/A          1  thrpt   30   38560.118 ±  554.044  ops/ms
[info] NoopBenchmark.improved_pre                         N/A     fjp         1024       N/A          1  thrpt   30  178376.694 ± 1055.498  ops/ms
[info] NoopBenchmark.improved_pre                         N/A     fix         1024       N/A          1  thrpt   30  179431.714 ± 1061.807  ops/ms
[info] NoopBenchmark.improved_pre                         N/A     fie         1024       N/A          1  thrpt   30  178385.219 ± 1848.113  ops/ms
[info] NoopBenchmark.stdlib_post                          N/A     fjp         1024       N/A          1  thrpt   30   37340.770 ±  145.750  ops/ms
[info] NoopBenchmark.stdlib_post                          N/A     fix         1024       N/A          1  thrpt   30   37415.219 ±  221.621  ops/ms
[info] NoopBenchmark.stdlib_post                          N/A     fie         1024       N/A          1  thrpt   30   38040.782 ±  168.022  ops/ms
[info] NoopBenchmark.stdlib_pre                           N/A     fjp         1024       N/A          1  thrpt   30  191963.589 ± 1245.839  ops/ms
[info] NoopBenchmark.stdlib_pre                           N/A     fix         1024       N/A          1  thrpt   30  182222.708 ± 2409.320  ops/ms
[info] NoopBenchmark.stdlib_pre                           N/A     fie         1024       N/A          1  thrpt   30  190181.241 ± 3580.224  ops/ms
[info] TransformBenchmark.improved_post                   N/A     fjp         1024       N/A          1  thrpt   30       8.848 ±    0.038  ops/ms
[info] TransformBenchmark.improved_post                   N/A     fix         1024       N/A          1  thrpt   30       8.412 ±    0.033  ops/ms
[info] TransformBenchmark.improved_post                   N/A     fie         1024       N/A          1  thrpt   30      27.353 ±    0.202  ops/ms
[info] TransformBenchmark.improved_pre                    N/A     fjp         1024       N/A          1  thrpt   30      10.381 ±    0.052  ops/ms
[info] TransformBenchmark.improved_pre                    N/A     fix         1024       N/A          1  thrpt   30       9.622 ±    0.081  ops/ms
[info] TransformBenchmark.improved_pre                    N/A     fie         1024       N/A          1  thrpt   30      11.864 ±    0.065  ops/ms
[info] TransformBenchmark.stdlib_post                     N/A     fjp         1024       N/A          1  thrpt   30       7.914 ±    0.050  ops/ms
[info] TransformBenchmark.stdlib_post                     N/A     fix         1024       N/A          1  thrpt   30       7.527 ±    0.037  ops/ms
[info] TransformBenchmark.stdlib_post                     N/A     fie         1024       N/A          1  thrpt   30      15.830 ±    0.130  ops/ms
[info] TransformBenchmark.stdlib_pre                      N/A     fjp         1024       N/A          1  thrpt   30      11.911 ±    0.105  ops/ms
[info] TransformBenchmark.stdlib_pre                      N/A     fix         1024       N/A          1  thrpt   30       9.818 ±    0.120  ops/ms
[info] TransformBenchmark.stdlib_pre                      N/A     fie         1024       N/A          1  thrpt   30       6.562 ±    0.044  ops/ms
[info] TransformWithBenchmark.improved_post               N/A     fjp         1024       N/A          1  thrpt   30       7.807 ±    0.032  ops/ms
[info] TransformWithBenchmark.improved_post               N/A     fix         1024       N/A          1  thrpt   30       7.050 ±    0.035  ops/ms
[info] TransformWithBenchmark.improved_post               N/A     fie         1024       N/A          1  thrpt   30      21.171 ±    0.142  ops/ms
[info] TransformWithBenchmark.improved_pre                N/A     fjp         1024       N/A          1  thrpt   30      10.480 ±    0.078  ops/ms
[info] TransformWithBenchmark.improved_pre                N/A     fix         1024       N/A          1  thrpt   30       8.511 ±    0.032  ops/ms
[info] TransformWithBenchmark.improved_pre                N/A     fie         1024       N/A          1  thrpt   30      10.904 ±    0.071  ops/ms
[info] TransformWithBenchmark.stdlib_post                 N/A     fjp         1024       N/A          1  thrpt   30       3.364 ±    0.034  ops/ms
[info] TransformWithBenchmark.stdlib_post                 N/A     fix         1024       N/A          1  thrpt   30       3.217 ±    0.031  ops/ms
[info] TransformWithBenchmark.stdlib_post                 N/A     fie         1024       N/A          1  thrpt   30      11.598 ±    0.080  ops/ms
[info] TransformWithBenchmark.stdlib_pre                  N/A     fjp         1024       N/A          1  thrpt   30       3.993 ±    0.023  ops/ms
[info] TransformWithBenchmark.stdlib_pre                  N/A     fix         1024       N/A          1  thrpt   30       3.642 ±    0.035  ops/ms
[info] TransformWithBenchmark.stdlib_pre                  N/A     fie         1024       N/A          1  thrpt   30       4.439 ±    0.061  ops/ms
[info] VariousBenchmark.improved_post                     N/A     fjp         1024       N/A          1  thrpt   30       0.932 ±    0.006  ops/ms
[info] VariousBenchmark.improved_post                     N/A     fix         1024       N/A          1  thrpt   30       0.859 ±    0.006  ops/ms
[info] VariousBenchmark.improved_post                     N/A     fie         1024       N/A          1  thrpt   30       1.714 ±    0.008  ops/ms
[info] VariousBenchmark.improved_pre                      N/A     fjp         1024       N/A          1  thrpt   30       1.197 ±    0.008  ops/ms
[info] VariousBenchmark.improved_pre                      N/A     fix         1024       N/A          1  thrpt   30       0.960 ±    0.009  ops/ms
[info] VariousBenchmark.improved_pre                      N/A     fie         1024       N/A          1  thrpt   30       1.133 ±    0.008  ops/ms
[info] VariousBenchmark.stdlib_post                       N/A     fjp         1024       N/A          1  thrpt   30       0.705 ±    0.005  ops/ms
[info] VariousBenchmark.stdlib_post                       N/A     fix         1024       N/A          1  thrpt   30       0.695 ±    0.004  ops/ms
[info] VariousBenchmark.stdlib_post                       N/A     fie         1024       N/A          1  thrpt   30       1.519 ±    0.016  ops/ms
[info] VariousBenchmark.stdlib_pre                        N/A     fjp         1024       N/A          1  thrpt   30       0.847 ±    0.007  ops/ms
[info] VariousBenchmark.stdlib_pre                        N/A     fix         1024       N/A          1  thrpt   30       0.784 ±    0.007  ops/ms
[info] VariousBenchmark.stdlib_pre                        N/A     fie         1024       N/A          1  thrpt   30       0.623 ±    0.008  ops/ms
[info] ZipWithBenchmark.improved_post                     N/A     fjp         1024       N/A          1  thrpt   30       3.972 ±    0.033  ops/ms
[info] ZipWithBenchmark.improved_post                     N/A     fix         1024       N/A          1  thrpt   30       3.499 ±    0.017  ops/ms
[info] ZipWithBenchmark.improved_post                     N/A     fie         1024       N/A          1  thrpt   30       7.944 ±    0.179  ops/ms
[info] ZipWithBenchmark.improved_pre                      N/A     fjp         1024       N/A          1  thrpt   30       4.035 ±    0.028  ops/ms
[info] ZipWithBenchmark.improved_pre                      N/A     fix         1024       N/A          1  thrpt   30       3.948 ±    0.022  ops/ms
[info] ZipWithBenchmark.improved_pre                      N/A     fie         1024       N/A          1  thrpt   30       5.579 ±    0.035  ops/ms
[info] ZipWithBenchmark.stdlib_post                       N/A     fjp         1024       N/A          1  thrpt   30       2.966 ±    0.024  ops/ms
[info] ZipWithBenchmark.stdlib_post                       N/A     fix         1024       N/A          1  thrpt   30       2.749 ±    0.022  ops/ms
[info] ZipWithBenchmark.stdlib_post                       N/A     fie         1024       N/A          1  thrpt   30       8.479 ±    0.070  ops/ms
[info] ZipWithBenchmark.stdlib_pre                        N/A     fjp         1024       N/A          1  thrpt   30       3.107 ±    0.019  ops/ms
[info] ZipWithBenchmark.stdlib_pre                        N/A     fix         1024       N/A          1  thrpt   30       2.979 ±    0.018  ops/ms
[info] ZipWithBenchmark.stdlib_pre                        N/A     fie         1024       N/A          1  thrpt   30       4.150 ±    0.104  ops/ms
[info] 	scala.future.AndThenBenchmark.improved_post_pool=fie_recursion=1024_threads=1	24	ops/ms
[info] 	scala.future.AndThenBenchmark.improved_post_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.AndThenBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.AndThenBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.AndThenBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.AndThenBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	12	ops/ms
[info] 	scala.future.AndThenBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	15	ops/ms
[info] 	scala.future.AndThenBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.AndThenBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.AndThenBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	5	ops/ms
[info] 	scala.future.AndThenBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.AndThenBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.CallbackBenchmark.onComplete_1024_impl=improved_pool=fix_threads=1	50	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1024_impl=improved_pool=fjp_threads=1	50	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1024_impl=stdlib_pool=fix_threads=1	40	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1024_impl=stdlib_pool=fjp_threads=1	40	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_16_impl=improved_pool=fix_threads=1	44	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_16_impl=improved_pool=fjp_threads=1	44	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_16_impl=stdlib_pool=fix_threads=1	39	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_16_impl=stdlib_pool=fjp_threads=1	39	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1_impl=improved_pool=fix_threads=1	26	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1_impl=improved_pool=fjp_threads=1	25	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1_impl=stdlib_pool=fix_threads=1	23	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_1_impl=stdlib_pool=fjp_threads=1	23	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_2_impl=improved_pool=fix_threads=1	33	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=fix_threads=1	29	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=fix_threads=1	37	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=fix_threads=1	34	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_4_impl=stdlib_pool=fjp_threads=1	34	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_64_impl=improved_pool=fix_threads=1	49	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_64_impl=improved_pool=fjp_threads=1	49	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_64_impl=stdlib_pool=fix_threads=1	40	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_64_impl=stdlib_pool=fjp_threads=1	38	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_8192_impl=improved_pool=fix_threads=1	51	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_8192_impl=improved_pool=fjp_threads=1	51	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib_pool=fix_threads=1	40	ops/us
[info] 	scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib_pool=fjp_threads=1	41	ops/us
[info] 	scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=failure	22	ops/us
[info] 	scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=success	37	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	36	ops/us
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=failure	732	ops/us
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=success	738	ops/us
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=failure	43	ops/us
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=success	410	ops/us
[info] 	scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=improved_result=failure	7	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	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	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	5	ops/us
[info] 	scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=improved_result=failure	8	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	7	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] 	scala.future.FilterBenchmark.improved_post_pool=fie_recursion=1024_threads=1	21	ops/ms
[info] 	scala.future.FilterBenchmark.improved_post_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.FilterBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.FilterBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	12	ops/ms
[info] 	scala.future.FilterBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.FilterBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.FilterBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.FilterBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	6	ops/ms
[info] 	scala.future.FilterBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.FilterBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	6	ops/ms
[info] 	scala.future.FilterBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.FilterBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.FlatMapBenchmark.improved_post_pool=fie_recursion=1024_threads=1	19	ops/ms
[info] 	scala.future.FlatMapBenchmark.improved_post_pool=fix_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.FlatMapBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.FlatMapBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.FlatMapBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.FlatMapBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.FlatMapBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.FlatMapBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.FlatMapBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.FlatMapBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.FlatMapBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.FlatMapBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.LoopBenchmark.improved_post_pool=fie_recursion=1024_threads=1	4072	ops/ms
[info] 	scala.future.LoopBenchmark.improved_post_pool=fix_recursion=1024_threads=1	334	ops/ms
[info] 	scala.future.LoopBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	647	ops/ms
[info] 	scala.future.LoopBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	5398	ops/ms
[info] 	scala.future.LoopBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	478	ops/ms
[info] 	scala.future.LoopBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	759	ops/ms
[info] 	scala.future.LoopBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	2529	ops/ms
[info] 	scala.future.LoopBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	339	ops/ms
[info] 	scala.future.LoopBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	539	ops/ms
[info] 	scala.future.LoopBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	4050	ops/ms
[info] 	scala.future.LoopBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	377	ops/ms
[info] 	scala.future.LoopBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	735	ops/ms
[info] 	scala.future.MapBenchmark.improved_post_pool=fie_recursion=1024_threads=1	22	ops/ms
[info] 	scala.future.MapBenchmark.improved_post_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.MapBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.MapBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	11	ops/ms
[info] 	scala.future.MapBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.MapBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	11	ops/ms
[info] 	scala.future.MapBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	15	ops/ms
[info] 	scala.future.MapBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.MapBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.MapBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	6	ops/ms
[info] 	scala.future.MapBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.MapBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.NoopBenchmark.improved_post_pool=fie_recursion=1024_threads=1	38560	ops/ms
[info] 	scala.future.NoopBenchmark.improved_post_pool=fix_recursion=1024_threads=1	39419	ops/ms
[info] 	scala.future.NoopBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	39460	ops/ms
[info] 	scala.future.NoopBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	178385	ops/ms
[info] 	scala.future.NoopBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	179432	ops/ms
[info] 	scala.future.NoopBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	178377	ops/ms
[info] 	scala.future.NoopBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	38041	ops/ms
[info] 	scala.future.NoopBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	37415	ops/ms
[info] 	scala.future.NoopBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	37341	ops/ms
[info] 	scala.future.NoopBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	190181	ops/ms
[info] 	scala.future.NoopBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	182223	ops/ms
[info] 	scala.future.NoopBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	191964	ops/ms
[info] 	scala.future.TransformBenchmark.improved_post_pool=fie_recursion=1024_threads=1	27	ops/ms
[info] 	scala.future.TransformBenchmark.improved_post_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.TransformBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.TransformBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	12	ops/ms
[info] 	scala.future.TransformBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.TransformBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.TransformBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	16	ops/ms
[info] 	scala.future.TransformBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.TransformBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.TransformBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.TransformBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.TransformBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	12	ops/ms
[info] 	scala.future.TransformWithBenchmark.improved_post_pool=fie_recursion=1024_threads=1	21	ops/ms
[info] 	scala.future.TransformWithBenchmark.improved_post_pool=fix_recursion=1024_threads=1	7	ops/ms
[info] 	scala.future.TransformWithBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.TransformWithBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	11	ops/ms
[info] 	scala.future.TransformWithBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	9	ops/ms
[info] 	scala.future.TransformWithBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	10	ops/ms
[info] 	scala.future.TransformWithBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	12	ops/ms
[info] 	scala.future.TransformWithBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.TransformWithBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.TransformWithBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.TransformWithBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.TransformWithBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.VariousBenchmark.improved_post_pool=fie_recursion=1024_threads=1	2	ops/ms
[info] 	scala.future.VariousBenchmark.improved_post_pool=fix_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	2	ops/ms
[info] 	scala.future.VariousBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.VariousBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	1	ops/ms
[info] 	scala.future.ZipWithBenchmark.improved_post_pool=fie_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.ZipWithBenchmark.improved_post_pool=fix_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.ZipWithBenchmark.improved_post_pool=fjp_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.ZipWithBenchmark.improved_pre_pool=fie_recursion=1024_threads=1	6	ops/ms
[info] 	scala.future.ZipWithBenchmark.improved_pre_pool=fix_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.ZipWithBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.ZipWithBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1	8	ops/ms
[info] 	scala.future.ZipWithBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.ZipWithBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.ZipWithBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1	4	ops/ms
[info] 	scala.future.ZipWithBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1	3	ops/ms
[info] 	scala.future.ZipWithBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1	3	ops/ms
[success] Total time: 8381 s, completed Jan 31, 2018 1:31:23 AM
sbt:benches> 

ktoso avatar Jan 30 '18 16:01 ktoso

Thanks @ktoso!

Looks like some nice improvements basically across the board. I am looking at some more potential improvements. Will ping you as soon as I have something to demo.

-- Cheers, √

On Jan 30, 2018 17:40, "ktoso" [email protected] wrote:

Some of the final run results from running sbt:benches> jmh:runMain scala.future.BenchRunner -p impl=stdlib,improved -p threads=1 -p completed=pre,post -i 30 -wi 15 -f 1 -t 1 .*

cpu: Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (HT enabled) memory: 16G DDR4 2400Mhz (Dell XPS15, mid 2017)

Did not review the changes in the branch yet though, just let it running on the side, let me know how I can help ;)

[info] # Run complete. Total time: 02:19:39 [info] Benchmark (impl) (pool) (recursion) (result) (threads) Mode Cnt Score Error Units [info] AndThenBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 9.442 ± 0.058 ops/ms [info] AndThenBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 7.916 ± 0.037 ops/ms [info] AndThenBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 23.577 ± 0.135 ops/ms [info] AndThenBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 12.072 ± 0.079 ops/ms [info] AndThenBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 7.779 ± 0.156 ops/ms [info] AndThenBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 10.143 ± 0.057 ops/ms [info] AndThenBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 7.888 ± 0.080 ops/ms [info] AndThenBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 7.141 ± 0.057 ops/ms [info] AndThenBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 15.335 ± 0.394 ops/ms [info] AndThenBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 9.327 ± 0.061 ops/ms [info] AndThenBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 9.131 ± 0.058 ops/ms [info] AndThenBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 5.247 ± 0.045 ops/ms [info] CallbackBenchmark.onComplete_1 stdlib fjp N/A N/A 1 thrpt 30 23.235 ± 0.184 ops/us [info] CallbackBenchmark.onComplete_1 stdlib fix N/A N/A 1 thrpt 30 23.120 ± 0.158 ops/us [info] CallbackBenchmark.onComplete_1 improved fjp N/A N/A 1 thrpt 30 25.113 ± 0.175 ops/us [info] CallbackBenchmark.onComplete_1 improved fix N/A N/A 1 thrpt 30 25.800 ± 0.588 ops/us [info] CallbackBenchmark.onComplete_1024 stdlib fjp N/A N/A 1 thrpt 30 39.628 ± 0.226 ops/us [info] CallbackBenchmark.onComplete_1024 stdlib fix N/A N/A 1 thrpt 30 39.641 ± 0.254 ops/us [info] CallbackBenchmark.onComplete_1024 improved fjp N/A N/A 1 thrpt 30 49.798 ± 0.408 ops/us [info] CallbackBenchmark.onComplete_1024 improved fix N/A N/A 1 thrpt 30 49.822 ± 0.367 ops/us [info] CallbackBenchmark.onComplete_16 stdlib fjp N/A N/A 1 thrpt 30 38.818 ± 0.270 ops/us [info] CallbackBenchmark.onComplete_16 stdlib fix N/A N/A 1 thrpt 30 38.806 ± 0.205 ops/us [info] CallbackBenchmark.onComplete_16 improved fjp N/A N/A 1 thrpt 30 44.299 ± 0.318 ops/us [info] CallbackBenchmark.onComplete_16 improved fix N/A N/A 1 thrpt 30 44.359 ± 0.213 ops/us [info] CallbackBenchmark.onComplete_2 stdlib fjp N/A N/A 1 thrpt 30 28.621 ± 0.230 ops/us [info] CallbackBenchmark.onComplete_2 stdlib fix N/A N/A 1 thrpt 30 28.640 ± 0.199 ops/us [info] CallbackBenchmark.onComplete_2 improved fjp N/A N/A 1 thrpt 30 34.008 ± 0.230 ops/us [info] CallbackBenchmark.onComplete_2 improved fix N/A N/A 1 thrpt 30 33.425 ± 0.241 ops/us [info] CallbackBenchmark.onComplete_4 stdlib fjp N/A N/A 1 thrpt 30 33.703 ± 0.182 ops/us [info] CallbackBenchmark.onComplete_4 stdlib fix N/A N/A 1 thrpt 30 33.715 ± 0.229 ops/us [info] CallbackBenchmark.onComplete_4 improved fjp N/A N/A 1 thrpt 30 39.027 ± 0.268 ops/us [info] CallbackBenchmark.onComplete_4 improved fix N/A N/A 1 thrpt 30 36.670 ± 0.267 ops/us [info] CallbackBenchmark.onComplete_64 stdlib fjp N/A N/A 1 thrpt 30 37.859 ± 0.741 ops/us [info] CallbackBenchmark.onComplete_64 stdlib fix N/A N/A 1 thrpt 30 40.171 ± 0.647 ops/us [info] CallbackBenchmark.onComplete_64 improved fjp N/A N/A 1 thrpt 30 49.491 ± 0.376 ops/us [info] CallbackBenchmark.onComplete_64 improved fix N/A N/A 1 thrpt 30 49.445 ± 0.363 ops/us [info] CallbackBenchmark.onComplete_8192 stdlib fjp N/A N/A 1 thrpt 30 40.593 ± 0.246 ops/us [info] CallbackBenchmark.onComplete_8192 stdlib fix N/A N/A 1 thrpt 30 39.652 ± 0.241 ops/us [info] CallbackBenchmark.onComplete_8192 improved fjp N/A N/A 1 thrpt 30 50.681 ± 0.819 ops/us [info] CallbackBenchmark.onComplete_8192 improved fix N/A N/A 1 thrpt 30 50.725 ± 0.708 ops/us [info] CompletionBenchmark.tryComplete_1 stdlib N/A N/A success N/A thrpt 30 35.770 ± 0.187 ops/us [info] CompletionBenchmark.tryComplete_1 stdlib N/A N/A failure N/A thrpt 30 18.842 ± 0.226 ops/us [info] CompletionBenchmark.tryComplete_1 improved N/A N/A success N/A thrpt 30 37.232 ± 0.229 ops/us [info] CompletionBenchmark.tryComplete_1 improved N/A N/A failure N/A thrpt 30 21.630 ± 0.097 ops/us [info] CompletionBenchmark.tryComplete_8192 stdlib N/A N/A success N/A thrpt 30 410.330 ± 2.061 ops/us [info] CompletionBenchmark.tryComplete_8192 stdlib N/A N/A failure N/A thrpt 30 43.142 ± 0.894 ops/us [info] CompletionBenchmark.tryComplete_8192 improved N/A N/A success N/A thrpt 30 737.878 ± 3.785 ops/us [info] CompletionBenchmark.tryComplete_8192 improved N/A N/A failure N/A thrpt 30 732.132 ± 4.137 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1 stdlib N/A N/A success N/A thrpt 30 3.184 ± 0.023 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1 stdlib N/A N/A failure N/A thrpt 30 2.797 ± 0.027 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1 improved N/A N/A success N/A thrpt 30 5.255 ± 0.042 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1 improved N/A N/A failure N/A thrpt 30 4.393 ± 0.064 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1024 stdlib N/A N/A success N/A thrpt 30 5.001 ± 0.046 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1024 stdlib N/A N/A failure N/A thrpt 30 4.405 ± 0.038 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1024 improved N/A N/A success N/A thrpt 30 7.772 ± 0.199 ops/us [info] CompletionWithBenchmark.tryCompleteWith_1024 improved N/A N/A failure N/A thrpt 30 7.433 ± 0.084 ops/us [info] CompletionWithBenchmark.tryCompleteWith_16 stdlib N/A N/A success N/A thrpt 30 4.873 ± 0.030 ops/us [info] CompletionWithBenchmark.tryCompleteWith_16 stdlib N/A N/A failure N/A thrpt 30 4.406 ± 0.032 ops/us [info] CompletionWithBenchmark.tryCompleteWith_16 improved N/A N/A success N/A thrpt 30 7.290 ± 0.047 ops/us [info] CompletionWithBenchmark.tryCompleteWith_16 improved N/A N/A failure N/A thrpt 30 7.085 ± 0.059 ops/us [info] CompletionWithBenchmark.tryCompleteWith_2 stdlib N/A N/A success N/A thrpt 30 4.269 ± 0.039 ops/us [info] CompletionWithBenchmark.tryCompleteWith_2 stdlib N/A N/A failure N/A thrpt 30 3.747 ± 0.020 ops/us [info] CompletionWithBenchmark.tryCompleteWith_2 improved N/A N/A success N/A thrpt 30 6.152 ± 0.035 ops/us [info] CompletionWithBenchmark.tryCompleteWith_2 improved N/A N/A failure N/A thrpt 30 5.418 ± 0.027 ops/us [info] CompletionWithBenchmark.tryCompleteWith_4 stdlib N/A N/A success N/A thrpt 30 4.603 ± 0.030 ops/us [info] CompletionWithBenchmark.tryCompleteWith_4 stdlib N/A N/A failure N/A thrpt 30 3.983 ± 0.035 ops/us [info] CompletionWithBenchmark.tryCompleteWith_4 improved N/A N/A success N/A thrpt 30 6.752 ± 0.038 ops/us [info] CompletionWithBenchmark.tryCompleteWith_4 improved N/A N/A failure N/A thrpt 30 5.951 ± 0.140 ops/us [info] CompletionWithBenchmark.tryCompleteWith_64 stdlib N/A N/A success N/A thrpt 30 4.644 ± 0.049 ops/us [info] CompletionWithBenchmark.tryCompleteWith_64 stdlib N/A N/A failure N/A thrpt 30 4.404 ± 0.030 ops/us [info] CompletionWithBenchmark.tryCompleteWith_64 improved N/A N/A success N/A thrpt 30 7.809 ± 0.048 ops/us [info] CompletionWithBenchmark.tryCompleteWith_64 improved N/A N/A failure N/A thrpt 30 7.661 ± 0.057 ops/us [info] CompletionWithBenchmark.tryCompleteWith_8192 stdlib N/A N/A success N/A thrpt 30 5.177 ± 0.031 ops/us [info] CompletionWithBenchmark.tryCompleteWith_8192 stdlib N/A N/A failure N/A thrpt 30 4.492 ± 0.034 ops/us [info] CompletionWithBenchmark.tryCompleteWith_8192 improved N/A N/A success N/A thrpt 30 7.427 ± 0.082 ops/us [info] CompletionWithBenchmark.tryCompleteWith_8192 improved N/A N/A failure N/A thrpt 30 7.662 ± 0.062 ops/us [info] FilterBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 8.892 ± 0.057 ops/ms [info] FilterBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 8.020 ± 0.059 ops/ms [info] FilterBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 20.954 ± 0.116 ops/ms [info] FilterBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 9.918 ± 0.103 ops/ms [info] FilterBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 7.973 ± 0.054 ops/ms [info] FilterBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 11.554 ± 0.084 ops/ms [info] FilterBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 7.094 ± 0.050 ops/ms [info] FilterBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 6.424 ± 0.052 ops/ms [info] FilterBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 9.421 ± 0.376 ops/ms [info] FilterBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 9.090 ± 0.066 ops/ms [info] FilterBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 9.119 ± 0.087 ops/ms [info] FilterBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 6.036 ± 0.040 ops/ms [info] FlatMapBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 7.860 ± 0.045 ops/ms [info] FlatMapBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 6.823 ± 0.048 ops/ms [info] FlatMapBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 19.014 ± 0.125 ops/ms [info] FlatMapBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 10.227 ± 0.035 ops/ms [info] FlatMapBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 8.447 ± 0.040 ops/ms [info] FlatMapBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 9.141 ± 0.085 ops/ms [info] FlatMapBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 3.094 ± 0.024 ops/ms [info] FlatMapBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 2.991 ± 0.028 ops/ms [info] FlatMapBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 9.064 ± 0.150 ops/ms [info] FlatMapBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 3.791 ± 0.040 ops/ms [info] FlatMapBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 3.186 ± 0.025 ops/ms [info] FlatMapBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 4.056 ± 0.033 ops/ms [info] LoopBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 646.594 ± 19.639 ops/ms [info] LoopBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 334.330 ± 5.144 ops/ms [info] LoopBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 4072.347 ± 24.316 ops/ms [info] LoopBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 759.338 ± 9.861 ops/ms [info] LoopBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 478.384 ± 17.216 ops/ms [info] LoopBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 5397.723 ± 52.159 ops/ms [info] LoopBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 539.246 ± 14.650 ops/ms [info] LoopBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 339.335 ± 5.080 ops/ms [info] LoopBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 2528.564 ± 24.176 ops/ms [info] LoopBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 735.438 ± 28.316 ops/ms [info] LoopBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 377.440 ± 5.640 ops/ms [info] LoopBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 4050.084 ± 42.613 ops/ms [info] MapBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 8.727 ± 0.036 ops/ms [info] MapBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 8.097 ± 0.029 ops/ms [info] MapBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 22.299 ± 0.153 ops/ms [info] MapBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 11.032 ± 0.047 ops/ms [info] MapBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 9.403 ± 0.032 ops/ms [info] MapBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 10.972 ± 0.265 ops/ms [info] MapBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 6.537 ± 0.072 ops/ms [info] MapBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 6.586 ± 0.054 ops/ms [info] MapBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 14.646 ± 0.122 ops/ms [info] MapBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 9.444 ± 0.060 ops/ms [info] MapBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 8.838 ± 0.089 ops/ms [info] MapBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 6.177 ± 0.058 ops/ms [info] NoopBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 39460.059 ± 319.250 ops/ms [info] NoopBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 39419.224 ± 332.673 ops/ms [info] NoopBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 38560.118 ± 554.044 ops/ms [info] NoopBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 178376.694 ± 1055.498 ops/ms [info] NoopBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 179431.714 ± 1061.807 ops/ms [info] NoopBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 178385.219 ± 1848.113 ops/ms [info] NoopBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 37340.770 ± 145.750 ops/ms [info] NoopBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 37415.219 ± 221.621 ops/ms [info] NoopBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 38040.782 ± 168.022 ops/ms [info] NoopBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 191963.589 ± 1245.839 ops/ms [info] NoopBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 182222.708 ± 2409.320 ops/ms [info] NoopBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 190181.241 ± 3580.224 ops/ms [info] TransformBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 8.848 ± 0.038 ops/ms [info] TransformBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 8.412 ± 0.033 ops/ms [info] TransformBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 27.353 ± 0.202 ops/ms [info] TransformBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 10.381 ± 0.052 ops/ms [info] TransformBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 9.622 ± 0.081 ops/ms [info] TransformBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 11.864 ± 0.065 ops/ms [info] TransformBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 7.914 ± 0.050 ops/ms [info] TransformBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 7.527 ± 0.037 ops/ms [info] TransformBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 15.830 ± 0.130 ops/ms [info] TransformBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 11.911 ± 0.105 ops/ms [info] TransformBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 9.818 ± 0.120 ops/ms [info] TransformBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 6.562 ± 0.044 ops/ms [info] TransformWithBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 7.807 ± 0.032 ops/ms [info] TransformWithBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 7.050 ± 0.035 ops/ms [info] TransformWithBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 21.171 ± 0.142 ops/ms [info] TransformWithBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 10.480 ± 0.078 ops/ms [info] TransformWithBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 8.511 ± 0.032 ops/ms [info] TransformWithBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 10.904 ± 0.071 ops/ms [info] TransformWithBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 3.364 ± 0.034 ops/ms [info] TransformWithBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 3.217 ± 0.031 ops/ms [info] TransformWithBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 11.598 ± 0.080 ops/ms [info] TransformWithBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 3.993 ± 0.023 ops/ms [info] TransformWithBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 3.642 ± 0.035 ops/ms [info] TransformWithBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 4.439 ± 0.061 ops/ms [info] VariousBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 0.932 ± 0.006 ops/ms [info] VariousBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 0.859 ± 0.006 ops/ms [info] VariousBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 1.714 ± 0.008 ops/ms [info] VariousBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 1.197 ± 0.008 ops/ms [info] VariousBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 0.960 ± 0.009 ops/ms [info] VariousBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 1.133 ± 0.008 ops/ms [info] VariousBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 0.705 ± 0.005 ops/ms [info] VariousBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 0.695 ± 0.004 ops/ms [info] VariousBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 1.519 ± 0.016 ops/ms [info] VariousBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 0.847 ± 0.007 ops/ms [info] VariousBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 0.784 ± 0.007 ops/ms [info] VariousBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 0.623 ± 0.008 ops/ms [info] ZipWithBenchmark.improved_post N/A fjp 1024 N/A 1 thrpt 30 3.972 ± 0.033 ops/ms [info] ZipWithBenchmark.improved_post N/A fix 1024 N/A 1 thrpt 30 3.499 ± 0.017 ops/ms [info] ZipWithBenchmark.improved_post N/A fie 1024 N/A 1 thrpt 30 7.944 ± 0.179 ops/ms [info] ZipWithBenchmark.improved_pre N/A fjp 1024 N/A 1 thrpt 30 4.035 ± 0.028 ops/ms [info] ZipWithBenchmark.improved_pre N/A fix 1024 N/A 1 thrpt 30 3.948 ± 0.022 ops/ms [info] ZipWithBenchmark.improved_pre N/A fie 1024 N/A 1 thrpt 30 5.579 ± 0.035 ops/ms [info] ZipWithBenchmark.stdlib_post N/A fjp 1024 N/A 1 thrpt 30 2.966 ± 0.024 ops/ms [info] ZipWithBenchmark.stdlib_post N/A fix 1024 N/A 1 thrpt 30 2.749 ± 0.022 ops/ms [info] ZipWithBenchmark.stdlib_post N/A fie 1024 N/A 1 thrpt 30 8.479 ± 0.070 ops/ms [info] ZipWithBenchmark.stdlib_pre N/A fjp 1024 N/A 1 thrpt 30 3.107 ± 0.019 ops/ms [info] ZipWithBenchmark.stdlib_pre N/A fix 1024 N/A 1 thrpt 30 2.979 ± 0.018 ops/ms [info] ZipWithBenchmark.stdlib_pre N/A fie 1024 N/A 1 thrpt 30 4.150 ± 0.104 ops/ms [info] scala.future.AndThenBenchmark.improved_post_pool=fie_recursion=1024_threads=1 24 ops/ms [info] scala.future.AndThenBenchmark.improved_post_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.AndThenBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.AndThenBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 10 ops/ms [info] scala.future.AndThenBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.AndThenBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 12 ops/ms [info] scala.future.AndThenBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 15 ops/ms [info] scala.future.AndThenBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 7 ops/ms [info] scala.future.AndThenBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 8 ops/ms [info] scala.future.AndThenBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 5 ops/ms [info] scala.future.AndThenBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 9 ops/ms [info] scala.future.AndThenBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.CallbackBenchmark.onComplete_1024_impl=improved_pool=fix_threads=1 50 ops/us [info] scala.future.CallbackBenchmark.onComplete_1024_impl=improved_pool=fjp_threads=1 50 ops/us [info] scala.future.CallbackBenchmark.onComplete_1024_impl=stdlib_pool=fix_threads=1 40 ops/us [info] scala.future.CallbackBenchmark.onComplete_1024_impl=stdlib_pool=fjp_threads=1 40 ops/us [info] scala.future.CallbackBenchmark.onComplete_16_impl=improved_pool=fix_threads=1 44 ops/us [info] scala.future.CallbackBenchmark.onComplete_16_impl=improved_pool=fjp_threads=1 44 ops/us [info] scala.future.CallbackBenchmark.onComplete_16_impl=stdlib_pool=fix_threads=1 39 ops/us [info] scala.future.CallbackBenchmark.onComplete_16_impl=stdlib_pool=fjp_threads=1 39 ops/us [info] scala.future.CallbackBenchmark.onComplete_1_impl=improved_pool=fix_threads=1 26 ops/us [info] scala.future.CallbackBenchmark.onComplete_1_impl=improved_pool=fjp_threads=1 25 ops/us [info] scala.future.CallbackBenchmark.onComplete_1_impl=stdlib_pool=fix_threads=1 23 ops/us [info] scala.future.CallbackBenchmark.onComplete_1_impl=stdlib_pool=fjp_threads=1 23 ops/us [info] scala.future.CallbackBenchmark.onComplete_2_impl=improved_pool=fix_threads=1 33 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=fix_threads=1 29 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=fix_threads=1 37 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=fix_threads=1 34 ops/us [info] scala.future.CallbackBenchmark.onComplete_4_impl=stdlib_pool=fjp_threads=1 34 ops/us [info] scala.future.CallbackBenchmark.onComplete_64_impl=improved_pool=fix_threads=1 49 ops/us [info] scala.future.CallbackBenchmark.onComplete_64_impl=improved_pool=fjp_threads=1 49 ops/us [info] scala.future.CallbackBenchmark.onComplete_64_impl=stdlib_pool=fix_threads=1 40 ops/us [info] scala.future.CallbackBenchmark.onComplete_64_impl=stdlib_pool=fjp_threads=1 38 ops/us [info] scala.future.CallbackBenchmark.onComplete_8192_impl=improved_pool=fix_threads=1 51 ops/us [info] scala.future.CallbackBenchmark.onComplete_8192_impl=improved_pool=fjp_threads=1 51 ops/us [info] scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib_pool=fix_threads=1 40 ops/us [info] scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib_pool=fjp_threads=1 41 ops/us [info] scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=failure 22 ops/us [info] scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=success 37 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 36 ops/us [info] scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=failure 732 ops/us [info] scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=success 738 ops/us [info] scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=failure 43 ops/us [info] scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=success 410 ops/us [info] scala.future.CompletionWithBenchmark.tryCompleteWith_1024_impl=improved_result=failure 7 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 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 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 5 ops/us [info] scala.future.CompletionWithBenchmark.tryCompleteWith_64_impl=improved_result=failure 8 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 7 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] scala.future.FilterBenchmark.improved_post_pool=fie_recursion=1024_threads=1 21 ops/ms [info] scala.future.FilterBenchmark.improved_post_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.FilterBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.FilterBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 12 ops/ms [info] scala.future.FilterBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.FilterBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 10 ops/ms [info] scala.future.FilterBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 9 ops/ms [info] scala.future.FilterBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 6 ops/ms [info] scala.future.FilterBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 7 ops/ms [info] scala.future.FilterBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 6 ops/ms [info] scala.future.FilterBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 9 ops/ms [info] scala.future.FilterBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.FlatMapBenchmark.improved_post_pool=fie_recursion=1024_threads=1 19 ops/ms [info] scala.future.FlatMapBenchmark.improved_post_pool=fix_recursion=1024_threads=1 7 ops/ms [info] scala.future.FlatMapBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 8 ops/ms [info] scala.future.FlatMapBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 9 ops/ms [info] scala.future.FlatMapBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.FlatMapBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 10 ops/ms [info] scala.future.FlatMapBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 9 ops/ms [info] scala.future.FlatMapBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 3 ops/ms [info] scala.future.FlatMapBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 3 ops/ms [info] scala.future.FlatMapBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 4 ops/ms [info] scala.future.FlatMapBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 3 ops/ms [info] scala.future.FlatMapBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 4 ops/ms [info] scala.future.LoopBenchmark.improved_post_pool=fie_recursion=1024_threads=1 4072 ops/ms [info] scala.future.LoopBenchmark.improved_post_pool=fix_recursion=1024_threads=1 334 ops/ms [info] scala.future.LoopBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 647 ops/ms [info] scala.future.LoopBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 5398 ops/ms [info] scala.future.LoopBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 478 ops/ms [info] scala.future.LoopBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 759 ops/ms [info] scala.future.LoopBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 2529 ops/ms [info] scala.future.LoopBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 339 ops/ms [info] scala.future.LoopBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 539 ops/ms [info] scala.future.LoopBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 4050 ops/ms [info] scala.future.LoopBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 377 ops/ms [info] scala.future.LoopBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 735 ops/ms [info] scala.future.MapBenchmark.improved_post_pool=fie_recursion=1024_threads=1 22 ops/ms [info] scala.future.MapBenchmark.improved_post_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.MapBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.MapBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 11 ops/ms [info] scala.future.MapBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 9 ops/ms [info] scala.future.MapBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 11 ops/ms [info] scala.future.MapBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 15 ops/ms [info] scala.future.MapBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 7 ops/ms [info] scala.future.MapBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 7 ops/ms [info] scala.future.MapBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 6 ops/ms [info] scala.future.MapBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 9 ops/ms [info] scala.future.MapBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.NoopBenchmark.improved_post_pool=fie_recursion=1024_threads=1 38560 ops/ms [info] scala.future.NoopBenchmark.improved_post_pool=fix_recursion=1024_threads=1 39419 ops/ms [info] scala.future.NoopBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 39460 ops/ms [info] scala.future.NoopBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 178385 ops/ms [info] scala.future.NoopBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 179432 ops/ms [info] scala.future.NoopBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 178377 ops/ms [info] scala.future.NoopBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 38041 ops/ms [info] scala.future.NoopBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 37415 ops/ms [info] scala.future.NoopBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 37341 ops/ms [info] scala.future.NoopBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 190181 ops/ms [info] scala.future.NoopBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 182223 ops/ms [info] scala.future.NoopBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 191964 ops/ms [info] scala.future.TransformBenchmark.improved_post_pool=fie_recursion=1024_threads=1 27 ops/ms [info] scala.future.TransformBenchmark.improved_post_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.TransformBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 9 ops/ms [info] scala.future.TransformBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 12 ops/ms [info] scala.future.TransformBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 10 ops/ms [info] scala.future.TransformBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 10 ops/ms [info] scala.future.TransformBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 16 ops/ms [info] scala.future.TransformBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 8 ops/ms [info] scala.future.TransformBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 8 ops/ms [info] scala.future.TransformBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 7 ops/ms [info] scala.future.TransformBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 10 ops/ms [info] scala.future.TransformBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 12 ops/ms [info] scala.future.TransformWithBenchmark.improved_post_pool=fie_recursion=1024_threads=1 21 ops/ms [info] scala.future.TransformWithBenchmark.improved_post_pool=fix_recursion=1024_threads=1 7 ops/ms [info] scala.future.TransformWithBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 8 ops/ms [info] scala.future.TransformWithBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 11 ops/ms [info] scala.future.TransformWithBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 9 ops/ms [info] scala.future.TransformWithBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 10 ops/ms [info] scala.future.TransformWithBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 12 ops/ms [info] scala.future.TransformWithBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 3 ops/ms [info] scala.future.TransformWithBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 3 ops/ms [info] scala.future.TransformWithBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 4 ops/ms [info] scala.future.TransformWithBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 4 ops/ms [info] scala.future.TransformWithBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 4 ops/ms [info] scala.future.VariousBenchmark.improved_post_pool=fie_recursion=1024_threads=1 2 ops/ms [info] scala.future.VariousBenchmark.improved_post_pool=fix_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 2 ops/ms [info] scala.future.VariousBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 1 ops/ms [info] scala.future.VariousBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 1 ops/ms [info] scala.future.ZipWithBenchmark.improved_post_pool=fie_recursion=1024_threads=1 8 ops/ms [info] scala.future.ZipWithBenchmark.improved_post_pool=fix_recursion=1024_threads=1 3 ops/ms [info] scala.future.ZipWithBenchmark.improved_post_pool=fjp_recursion=1024_threads=1 4 ops/ms [info] scala.future.ZipWithBenchmark.improved_pre_pool=fie_recursion=1024_threads=1 6 ops/ms [info] scala.future.ZipWithBenchmark.improved_pre_pool=fix_recursion=1024_threads=1 4 ops/ms [info] scala.future.ZipWithBenchmark.improved_pre_pool=fjp_recursion=1024_threads=1 4 ops/ms [info] scala.future.ZipWithBenchmark.stdlib_post_pool=fie_recursion=1024_threads=1 8 ops/ms [info] scala.future.ZipWithBenchmark.stdlib_post_pool=fix_recursion=1024_threads=1 3 ops/ms [info] scala.future.ZipWithBenchmark.stdlib_post_pool=fjp_recursion=1024_threads=1 3 ops/ms [info] scala.future.ZipWithBenchmark.stdlib_pre_pool=fie_recursion=1024_threads=1 4 ops/ms [info] scala.future.ZipWithBenchmark.stdlib_pre_pool=fix_recursion=1024_threads=1 3 ops/ms [info] scala.future.ZipWithBenchmark.stdlib_pre_pool=fjp_recursion=1024_threads=1 3 ops/ms [success] Total time: 8381 s, completed Jan 31, 2018 1:31:23 AM sbt:benches>

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/viktorklang/scala-futures/issues/3, or mute the thread https://github.com/notifications/unsubscribe-auth/AAAqd5xskHXFficgPqQKkt6Q2Cx5gKbTks5tP0YLgaJpZM4Ryowu .

viktorklang avatar Jan 31 '18 17:01 viktorklang

If you’d want review I can have time set aside for it (no japanese lessons => more time).

ktoso avatar Jan 31 '18 17:01 ktoso

There are some main things I want to try to tackle:

  1. Investigate possibility to cheaply remive Links when the linked promise is completed
  2. Investigate possibility of not having to wrap most operations to fit into transform/transformWith, but without having to introduce more subclasses of XformPromise
  3. Investigate possibility of pruning callbacks which are never needed instead of dispatching noops. (Imagine adding a recover op to a future which then gets successfully completed
  4. Investigate the InternalCallbackExecutors optimality beyond current version
  5. Investigate alternatives to the ManyCallbacks class. I did a 4-way finger trie earlier but the added complexity was not justifiable

I should probably add all this as issues in this repo.

viktorklang avatar Jan 31 '18 17:01 viktorklang

@ktoso I just pushed a new commit to the wip-optimizations-√ branch, not super happy with the code style, but it seems a bit more performant yet.

viktorklang avatar Feb 02 '18 23:02 viktorklang

I'll have a look.

Could you fix this comment to not re-include all the results? https://github.com/viktorklang/scala-futures/issues/3#issuecomment-362012253 painful to scroll through it

ktoso avatar Feb 03 '18 19:02 ktoso

@ktoso Absolutely. Fixed. I just pushed a new commit which is pretty cool. Interested to see how it performs on your machine. (https://github.com/viktorklang/scala-futures/commit/a28f2e84b2b1e9fc40c511e16614a645d2651bcf)

viktorklang avatar Feb 03 '18 20:02 viktorklang

@ktoso There's a weird performance regression in firstCompletedOf:

[info] Benchmark                                (pool)  (recursion)  (threads)   Mode  Cnt   Score   Error   Units
[info] FirstCompletedOfBenchmark.improved_post     fjp          192          1  thrpt   20   0.499 ± 0.014  ops/ms
[info] FirstCompletedOfBenchmark.improved_pre      fjp          192          1  thrpt   20   0.503 ± 0.009  ops/ms
[info] FirstCompletedOfBenchmark.stdlib_post       fjp          192          1  thrpt   20  16.732 ± 0.138  ops/ms
[info] FirstCompletedOfBenchmark.stdlib_pre        fjp          192          1  thrpt   20  15.674 ± 0.298  ops/ms

viktorklang avatar Feb 04 '18 00:02 viktorklang

@ktoso Found it. And fixed it.

[info] Benchmark                                (pool)  (recursion)  (threads)   Mode  Cnt   Score   Error   Units
[info] FirstCompletedOfBenchmark.improved_post     fjp          192          1  thrpt   20  18.858 ± 0.224  ops/ms
[info] FirstCompletedOfBenchmark.improved_pre      fjp          192          1  thrpt   20  19.792 ± 0.258  ops/ms
[info] FirstCompletedOfBenchmark.stdlib_post       fjp          192          1  thrpt   20  16.015 ± 0.261  ops/ms
[info] FirstCompletedOfBenchmark.stdlib_pre        fjp          192          1  thrpt   20  16.340 ± 0.188  ops/ms

viktorklang avatar Feb 04 '18 01:02 viktorklang

Cool, though sadly I did not take that machine with me to europe. Can bench on it next week again. Hopping on a plane to Stockholm now

ktoso avatar Feb 04 '18 07:02 ktoso

Thanks for the commit, will have a look :)

ktoso avatar Feb 04 '18 07:02 ktoso

@ktoso Pushed another update.

viktorklang avatar Feb 06 '18 12:02 viktorklang

Cool, will now look into it a bit :)

ktoso avatar Feb 06 '18 13:02 ktoso

Back at the beefy box. Thanks for the overview of the new design back in Sweden btw, was good! Hope to get some time to play around as well, we'll see :)

What would you like me to run? The main run nowadays is a bit less benchmarks it seems (they're pretty quick):

[info] Benchmark                               (impl)  (result)  Mode  Cnt       Score       Error  Units
[info] CallbackBenchmark.onComplete_1          stdlib       N/A    ss   30   10024.833 ±  3704.747  ns/op
[info] CallbackBenchmark.onComplete_1        improved       N/A    ss   30    3407.233 ±  1112.089  ns/op
[info] CallbackBenchmark.onComplete_16         stdlib       N/A    ss   30   60349.433 ± 20220.314  ns/op
[info] CallbackBenchmark.onComplete_16       improved       N/A    ss   30   21378.567 ±  6773.998  ns/op
[info] CallbackBenchmark.onComplete_2          stdlib       N/A    ss   30   11609.233 ±  3905.352  ns/op
[info] CallbackBenchmark.onComplete_2        improved       N/A    ss   30    4665.233 ±  1402.013  ns/op
[info] CallbackBenchmark.onComplete_4          stdlib       N/A    ss   30   10961.167 ±  2352.935  ns/op
[info] CallbackBenchmark.onComplete_4        improved       N/A    ss   30    6938.300 ±  2720.896  ns/op
[info] CallbackBenchmark.onComplete_64         stdlib       N/A    ss   30   12687.667 ±  5327.636  ns/op
[info] CallbackBenchmark.onComplete_64       improved       N/A    ss   30   13256.100 ±  6121.853  ns/op
[info] CallbackBenchmark.onComplete_8192       stdlib       N/A    ss   30  339220.100 ± 36714.913  ns/op
[info] CallbackBenchmark.onComplete_8192     improved       N/A    ss   30  372399.700 ± 39879.405  ns/op
[info] CompletionBenchmark.tryComplete_1       stdlib   success    ss   30    2237.633 ±  1118.184  ns/op
[info] CompletionBenchmark.tryComplete_1       stdlib   failure    ss   30    3823.600 ±  1075.754  ns/op
[info] CompletionBenchmark.tryComplete_1     improved   success    ss   30    2488.067 ±  1315.143  ns/op
[info] CompletionBenchmark.tryComplete_1     improved   failure    ss   30    3453.300 ±  1756.089  ns/op
[info] CompletionBenchmark.tryComplete_16      stdlib   success    ss   30   12335.033 ±  8249.734  ns/op
[info] CompletionBenchmark.tryComplete_16      stdlib   failure    ss   30   12233.967 ±  5527.874  ns/op
[info] CompletionBenchmark.tryComplete_16    improved   success    ss   30    7800.600 ±  6339.226  ns/op
[info] CompletionBenchmark.tryComplete_16    improved   failure    ss   30    7363.467 ±  4654.659  ns/op
[info] CompletionBenchmark.tryComplete_2       stdlib   success    ss   30    3649.333 ±   785.538  ns/op
[info] CompletionBenchmark.tryComplete_2       stdlib   failure    ss   30    3317.000 ±  1209.830  ns/op
[info] CompletionBenchmark.tryComplete_2     improved   success    ss   30    2436.300 ±   688.951  ns/op
[info] CompletionBenchmark.tryComplete_2     improved   failure    ss   30    4247.433 ±  1112.173  ns/op
[info] CompletionBenchmark.tryComplete_4       stdlib   success    ss   30    2828.067 ±  1568.852  ns/op
[info] CompletionBenchmark.tryComplete_4       stdlib   failure    ss   30    7236.967 ±  4087.853  ns/op
[info] CompletionBenchmark.tryComplete_4     improved   success    ss   30    2573.667 ±  1248.644  ns/op
[info] CompletionBenchmark.tryComplete_4     improved   failure    ss   30    2848.033 ±  1552.413  ns/op
[info] CompletionBenchmark.tryComplete_64      stdlib   success    ss   30    5299.200 ±  1280.611  ns/op
[info] CompletionBenchmark.tryComplete_64      stdlib   failure    ss   30    9295.100 ±  4220.022  ns/op
[info] CompletionBenchmark.tryComplete_64    improved   success    ss   30    4361.033 ±   897.248  ns/op
[info] CompletionBenchmark.tryComplete_64    improved   failure    ss   30    6584.467 ±  1072.851  ns/op
[info] CompletionBenchmark.tryComplete_8192    stdlib   success    ss   30   62039.967 ± 30077.810  ns/op
[info] CompletionBenchmark.tryComplete_8192    stdlib   failure    ss   30  288578.433 ± 47247.053  ns/op
[info] CompletionBenchmark.tryComplete_8192  improved   success    ss   30   82829.133 ± 41142.505  ns/op
[info] CompletionBenchmark.tryComplete_8192  improved   failure    ss   30  267969.900 ± 40441.355  ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_16_impl=improved	21379	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_16_impl=stdlib	60349	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_1_impl=improved	3407	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_1_impl=stdlib	10025	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_2_impl=improved	4665	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_2_impl=stdlib	11609	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_4_impl=improved	6938	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_4_impl=stdlib	10961	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_64_impl=improved	13256	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_64_impl=stdlib	12688	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_8192_impl=improved	372400	ns/op
[info] 	scala.future.CallbackBenchmark.onComplete_8192_impl=stdlib	339220	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_16_impl=improved_result=failure	7363	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_16_impl=improved_result=success	7801	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_16_impl=stdlib_result=failure	12234	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_16_impl=stdlib_result=success	12335	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=failure	3453	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_1_impl=improved_result=success	2488	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_1_impl=stdlib_result=failure	3824	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_1_impl=stdlib_result=success	2238	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_2_impl=improved_result=failure	4247	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_2_impl=improved_result=success	2436	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_2_impl=stdlib_result=failure	3317	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_2_impl=stdlib_result=success	3649	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_4_impl=improved_result=failure	2848	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_4_impl=improved_result=success	2574	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_4_impl=stdlib_result=failure	7237	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_4_impl=stdlib_result=success	2828	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_64_impl=improved_result=failure	6584	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_64_impl=improved_result=success	4361	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_64_impl=stdlib_result=failure	9295	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_64_impl=stdlib_result=success	5299	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=failure	267970	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=improved_result=success	82829	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=failure	288578	ns/op
[info] 	scala.future.CompletionBenchmark.tryComplete_8192_impl=stdlib_result=success	62040	ns/op

ktoso avatar Feb 19 '18 10:02 ktoso

Looks like that only runs 2 of the benches. Hmmm, I wonder why.

Check out master, go to the "benches" project, and run something like:

jmh:runMain scala.future.BenchRunner -p threads=1 -p recursion=8192 -i 25 -wi 15 -f1 -t1 Benchmark*

That should run quit a few benchmarks.

viktorklang avatar Feb 19 '18 11:02 viktorklang