Hello!

webrev is updated in-place (just added parentheses):
http://cr.openjdk.java.net/~tvaleev/webrev/8154387/r1/

Updated benchmark source and results are available here:
http://cr.openjdk.java.net/~tvaleev/webrev/8154387/jmh/

In general I observe that for low-Q filter (x -> true) the results are
also improved as well as for
-Djava.util.concurrent.ForkJoinPool.common.parallelism=1. My tests
were performed on 4-core machine (no hyperthreading), thus default
parallelism is 4.

The LEAF_TARGET version does not change the results significantly. If
you feel that using LEAF_TARGET is more suitable I can update webrev
correspondingly.

Here's detailed summary benchmark report.

HighQ test (i -> i.isProbablePrime(10))
=======================================

> Sequential
seqLimit                 2   avgt   30     34,106 ±    0,164  us/op
seqLimit                20   avgt   30    362,209 ±    1,321  us/op
seqLimit               200   avgt   30   3622,753 ±   11,087  us/op
seqLimit              2000   avgt   30  36188,932 ±  302,942  us/op

== parallelism=4 ==
> Parallel ordered
parLimit                 2   avgt   30    107,273 ±    0,437  us/op
parLimit                20   avgt   30    924,058 ±    8,642  us/op
parLimit               200   avgt   30   8692,190 ±  151,165  us/op
parLimit              2000   avgt   30  41029,029 ± 2189,838  us/op
> Parallel unordered -- original
parUnorderedLimit        2   avgt   30   2479,964 ±   18,314  us/op
parUnorderedLimit       20   avgt   30   2471,107 ±   19,684  us/op
parUnorderedLimit      200   avgt   30   4512,631 ±   44,871  us/op
parUnorderedLimit     2000   avgt   30  12164,026 ±  422,714  us/op
> Parallel unordered -- commonPoolParallelism
parUnorderedLimit        2   avgt   30     39,121 ±    0,122  us/op
parUnorderedLimit       20   avgt   30    264,978 ±    0,192  us/op
parUnorderedLimit      200   avgt   30   2504,541 ±    5,618  us/op
parUnorderedLimit     2000   avgt   30  12167,302 ±  452,540  us/op
> Parallel unordered -- LEAF_TARGET
parUnorderedLimit        2   avgt   30     39,116 ±    0,184  us/op
parUnorderedLimit       20   avgt   30    264,382 ±    0,773  us/op
parUnorderedLimit      200   avgt   30   2528,825 ±   19,141  us/op
parUnorderedLimit     2000   avgt   30  11867,199 ±  370,857  us/op

== parallelism=1 ==
> Parallel ordered
parLimit                 2   avgt   30     78,868 ±   0,295  us/op
parLimit                20   avgt   30    763,807 ±   5,107  us/op
parLimit               200   avgt   30   7416,516 ±  39,541  us/op
parLimit              2000   avgt   30  73061,036 ± 188,994  us/op
> Parallel unordered -- original
parUnorderedLimit        2   avgt   30   2395,410 ±  10,143  us/op
parUnorderedLimit       20   avgt   30   2398,281 ±  12,045  us/op
parUnorderedLimit      200   avgt   30   4536,042 ±  55,675  us/op
parUnorderedLimit     2000   avgt   30  21166,422 ±  89,930  us/op
> Parallel unordered -- commonPoolParallelism
parUnorderedLimit        2   avgt   30     59,474 ±   0,362  us/op
parUnorderedLimit       20   avgt   30    403,132 ±   2,648  us/op
parUnorderedLimit      200   avgt   30   4533,470 ±  63,535  us/op
parUnorderedLimit     2000   avgt   30  21085,084 ±  81,648  us/op
> Parallel unordered -- LEAF_TARGET
parUnorderedLimit        2   avgt   30     58,607 ±   0,342  us/op
parUnorderedLimit       20   avgt   30    403,514 ±   2,774  us/op
parUnorderedLimit      200   avgt   30   4586,126 ±  62,480  us/op
parUnorderedLimit     2000   avgt   30  21272,978 ±  62,313  us/op


LowQ test (i -> true)
=====================

> Sequential
seqLimit                 2   avgt   30      0,133 ±    0,001  us/op
seqLimit                20   avgt   30      0,375 ±    0,015  us/op
seqLimit               200   avgt   30      2,941 ±    0,006  us/op
seqLimit              2000   avgt   30     28,756 ±    0,066  us/op

== parallelism=4 ==
> Parallel ordered
parLimit                 2   avgt   30     16,259 ±    0,249  us/op
parLimit                20   avgt   30     23,623 ±    0,205  us/op
parLimit               200   avgt   30     29,456 ±    0,202  us/op
parLimit              2000   avgt   30     65,344 ±    0,345  us/op
> Parallel unordered -- original
parUnorderedLimit        2   avgt   30      8,693 ±    0,137  us/op
parUnorderedLimit       20   avgt   30      8,987 ±    0,091  us/op
parUnorderedLimit      200   avgt   30     15,304 ±    0,073  us/op
parUnorderedLimit     2000   avgt   30     31,848 ±    0,360  us/op
> Parallel unordered -- commonPoolParallelism
parUnorderedLimit        2   avgt   30      3,814 ±    0,034  us/op
parUnorderedLimit       20   avgt   30      4,663 ±    0,028  us/op
parUnorderedLimit      200   avgt   30     12,337 ±    0,390  us/op
parUnorderedLimit     2000   avgt   30     31,886 ±    0,358  us/op
> Parallel unordered -- LEAF_TARGET
parUnorderedLimit        2   avgt   30      3,785 ±    0,042  us/op
parUnorderedLimit       20   avgt   30      4,652 ±    0,029  us/op
parUnorderedLimit      200   avgt   30     12,749 ±    0,028  us/op
parUnorderedLimit     2000   avgt   30     31,561 ±    0,362  us/op

== parallelism=1 ==
> Parallel ordered
parLimit                 2   avgt   30      6,618 ±   0,079  us/op
parLimit                20   avgt   30      9,280 ±   0,197  us/op
parLimit               200   avgt   30     15,549 ±   0,864  us/op
parLimit              2000   avgt   30     64,075 ±   0,358  us/op
> Parallel unordered -- original
parUnorderedLimit        2   avgt   30     10,946 ±   0,238  us/op
parUnorderedLimit       20   avgt   30     10,875 ±   0,175  us/op
parUnorderedLimit      200   avgt   30      9,304 ±   0,159  us/op
parUnorderedLimit     2000   avgt   30     42,164 ±   0,883  us/op
> Parallel unordered -- commonPoolParallelism
parUnorderedLimit        2   avgt   30      1,482 ±   0,080  us/op
parUnorderedLimit       20   avgt   30      3,515 ±   0,060  us/op
parUnorderedLimit      200   avgt   30      9,174 ±   0,078  us/op
parUnorderedLimit     2000   avgt   30     43,048 ±   0,997  us/op
> Parallel unordered -- LEAF_TARGET
parUnorderedLimit        2   avgt   30      2,281 ±   0,544  us/op
parUnorderedLimit       20   avgt   30      3,412 ±   0,031  us/op
parUnorderedLimit      200   avgt   30      9,109 ±   0,119  us/op
parUnorderedLimit     2000   avgt   30     41,742 ±   0,878  us/op

With best regards,
Tagir Valeev.

Reply via email to