On Mon, 6 Jul 2026 21:58:00 GMT, Vladimir Yaroslavskiy <[email protected]> wrote:
>> The goal of the PR is to improve both, sequential and parallel, sorting of >> primitives. >> >> **The main achievements** >> >> - introduced Radix in parallel sorting which shows several times boost of >> performance and has linear complexity instead of n*ln(n) >> - improved mixed insertion sort (makes whole sorting faster) >> - improved merging sort for almost sorted data >> - optimized parallel sorting >> - improved step for pivot candidates and pivot partitioning >> - suggested better buffer allocation: if no memory, it is switched to >> in-place sorting with no OutOfMemoryError >> - minor javadoc and comment changes >> >> - extended existing tests >> - added tests for radix sort, heap sort, insertion sort >> - added benchmarking JMH tests >> - improved test coverage >> >> **The summary of benchmarking:** >> >> **Sequential sorting (Arrays.sort)** >> >> byte: up to 50% faster >> char: 4-7 times faster >> short: 2-6 times faster >> int: 1.2-5 times faster >> long: 1.2-5 times faster >> float: 1.2-5 times faster >> double: 1.2-4 times faster >> >> **Parallel sorting (Arrays.parallelSort)** >> >> int: 1.2-9 times faster >> long: 1.2-9 times faster >> float: 1.2-4 times faster >> double: 1.2-4 times faster >> >> **AVX512 support** >> >> Vamsi Parasa suggested faster sort routines by taking advantage of AVX512 >> instructions, see https://github.com/openjdk/jdk/pull/14227, sources of >> sorting were modified. Therefore, I performed benchmarking of the final >> version (which includes optimizations by Vamsi Parasa and optimizations from >> my side) on a server with CPUs supported AVX512 instructions, no regression >> of performance was found, see detailed benchmarking results. >> >> **High-level chart showing how the actual sorting algorithm is selected >> based on parallel/sequential and input size** >> >> **int/long/float/double** >> >> if size < MAX_INSERTION_SORT_SIZE(=51) => [ mixed ] insertion sort >> if array is almost sorted and size > MIN_MERGING_SORT_SIZE(=512) => merging >> sort >> if recursion depth > MAX_RECURSION_DEPTH(=64) => heap sort >> if random data => two pivots quicksort, else => one pivot quicksort >> >> **byte** >> >> if size < MAX_INSERTION_SORT_SIZE(=51) => insertion sort >> else => counting sort >> >> **char/short** >> >> if size > MIN_COUNTING_SORT_SIZE(640) => counting sort >> if size < MAX_INSERTION_SORT_SIZE(=51) => insertion sort >> if recursion depth > MAX_RECURSION_DEPTH(=64) => counting sort >> if random data => two pivots quicksort, else => one pivot quicksort >> >> **parallel sorting (int/lo... > > Vladimir Yaroslavskiy has updated the pull request incrementally with one > additional commit since the last revision: > > JDK-8266431: Dual-Pivot Quicksort improvements > > * Added Radix sort to the template for future release > * Improved char counting sort > * Optimized partitioning with one pivot OpenJDK 28-ea+4-185 OpenJDK Runtime Environment (build 28-ea+4-185) OpenJDK 64-Bit Server VM (build 28-ea+4-185, mixed mode, sharing) **Sequential sorting** Benchmark | Data type | Array size | Baseline (us/op) | New version (us/op) | Speedup -- | -- | -- | -- | -- | -- byte | RANDOM | 600 | 1,321 | 1,341 | **0.99** byte | RANDOM | 4000 | 4,532 | 4,556 | **0.99** byte | RANDOM | 80000 | 72,407 | 62,353 | **1.16** byte | RANDOM | 200000 | 151,401 | 138,774 | **1.09** byte | RANDOM | 9000000 | 6345,362 | 6358,377 | **1.00** byte | SHUFFLE | 600 | 1,328 | 1,340 | **0.99** byte | SHUFFLE | 4000 | 4,583 | 4,591 | **1.00** byte | SHUFFLE | 80000 | 70,570 | 58,802 | **1.20** byte | SHUFFLE | 200000 | 148,164 | 135,779 | **1.09** byte | SHUFFLE | 9000000 | 6343,973 | 6286,376 | **1.01** byte | STAGGER | 600 | 0,960 | 0,910 | **1.05** byte | STAGGER | 4000 | 3,195 | 3,293 | **0.97** byte | STAGGER | 80000 | 53,773 | 50,480 | **1.07** byte | STAGGER | 200000 | 131,013 | 124,490 | **1.05** byte | STAGGER | 9000000 | 6115,930 | 6124,951 | **1.00** byte | REPEATED | 600 | 0,933 | 0,685 | **1.36** byte | REPEATED | 4000 | 3,306 | 3,201 | **1.03** byte | REPEATED | 80000 | 54,985 | 52,121 | **1.05** byte | REPEATED | 200000 | 134,543 | 128,976 | **1.04** byte | REPEATED | 9000000 | 6349,663 | 6352,113 | **1.00** --- | --- | --- | --- | --- | --- char | RANDOM | 600 | 11,470 | 2,679 | **4.28** char | RANDOM | 4000 | 119,247 | 14,650 | **8.14** char | RANDOM | 80000 | 806,204 | 788,857 | **1.02** char | RANDOM | 200000 | 1149,060 | 1147,028 | **1.00** char | RANDOM | 9000000 | 13686,565 | 13797,861 | **0.99** char | SHUFFLE | 600 | 7,255 | 2,982 | **2.43** char | SHUFFLE | 4000 | 72,445 | 16,418 | **4.41** char | SHUFFLE | 80000 | 292,758 | 212,195 | **1.38** char | SHUFFLE | 200000 | 442,360 | 422,450 | **1.05** char | SHUFFLE | 9000000 | 7704,782 | 7757,444 | **0.99** char | STAGGER | 600 | 11,885 | 2,855 | **4.16** char | STAGGER | 4000 | 75,954 | 15,462 | **4.91** char | STAGGER | 80000 | 185,441 | 189,389 | **0.98** char | STAGGER | 200000 | 331,626 | 308,479 | **1.08** char | STAGGER | 9000000 | 9489,287 | 9442,252 | **1.00** char | REPEATED | 600 | 3,252 | 2,518 | **1.29** char | REPEATED | 4000 | 73,234 | 14,549 | **5.03** char | REPEATED | 80000 | 154,470 | 111,703 | **1.38** char | REPEATED | 200000 | 287,018 | 200,017 | **1.43** char | REPEATED | 9000000 | 7680,802 | 7538,216 | **1.02** --- | --- | --- | --- | --- | --- short | RANDOM | 600 | 13,671 | 3,094 | **4.42** short | RANDOM | 4000 | 109,474 | 18,019 | **6.08** short | RANDOM | 80000 | 845,672 | 775,694 | **1.09** short | RANDOM | 200000 | 1198,620 | 1173,638 | **1.02** short | RANDOM | 9000000 | 13638,478 | 13861,608 | **0.98** short | SHUFFLE | 600 | 7,243 | 3,323 | **2.18** short | SHUFFLE | 4000 | 38,785 | 19,155 | **2.02** short | SHUFFLE | 80000 | 248,968 | 208,231 | **1.20** short | SHUFFLE | 200000 | 442,123 | 423,559 | **1.04** short | SHUFFLE | 9000000 | 7469,888 | 7567,289 | **0.99** short | STAGGER | 600 | 11,593 | 3,340 | **3.47** short | STAGGER | 4000 | 41,012 | 18,880 | **2.17** short | STAGGER | 80000 | 178,396 | 183,913 | **0.97** short | STAGGER | 200000 | 313,581 | 307,434 | **1.02** short | STAGGER | 9000000 | 9387,168 | 9276,801 | **1.01** short | REPEATED | 600 | 3,405 | 2,720 | **1.25** short | REPEATED | 4000 | 41,989 | 15,785 | **2.66** short | REPEATED | 80000 | 151,680 | 91,299 | **1.66** short | REPEATED | 200000 | 286,441 | 180,998 | **1.58** short | REPEATED | 9000000 | 7527,898 | 7399,238 | **1.02** **Sequential sorting** Benchmark | Data type | Array size | Baseline (us/op) | New version (without Radix sort) | Speedup | New version (with Radix sort) | Speedup -- | -- | -- | -- | -- | -- | -- | -- int | RANDOM | 600 | 13,239 | 8,302 | **1.59** | 8,238 | **1.61** int | RANDOM | 4000 | 236,144 | 200,326 | **1.18** | 30,675 | **7.70** int | RANDOM | 80000 | 6603,783 | 5359,781 | **1.23** | 863,357 | **7.65** int | RANDOM | 200000 | 17641,066 | 14448,654 | **1.22** | 2227,314 | **7.92** int | RANDOM | 9000000 | 1044760,169 | 856216,460 | **1.22** | 127426,049 | **8.20** int | SHUFFLE | 600 | 6,924 | 5,091 | **1.36** | 4,993 | **1.39** int | SHUFFLE | 4000 | 121,709 | 104,964 | **1.16** | 106,407 | **1.14** int | SHUFFLE | 80000 | 3939,793 | 2991,064 | **1.32** | 1336,808 | **2.95** int | SHUFFLE | 200000 | 9698,369 | 7753,912 | **1.25** | 3298,233 | **2.94** int | SHUFFLE | 9000000 | 598914,792 | 485330,739 | **1.23** | 216716,119 | **2.76** int | STAGGER | 600 | 12,397 | 2,415 | **5.13** | 2,403 | **5.16** int | STAGGER | 4000 | 23,844 | 13,469 | **1.77** | 13,497 | **1.77** int | STAGGER | 80000 | 562,744 | 314,032 | **1.79** | 290,930 | **1.93** int | STAGGER | 200000 | 1364,459 | 757,285 | **1.80** | 757,977 | **1.80** int | STAGGER | 9000000 | 63903,890 | 40071,814 | **1.59** | 39530,399 | **1.62** int | REPEATED | 600 | 3,352 | 2,860 | **1.17** | 2,885 | **1.16** int | REPEATED | 4000 | 43,365 | 43,407 | **1.00** | 20,995 | **2.07** int | REPEATED | 80000 | 1301,657 | 1132,048 | **1.15** | 764,327 | **1.70** int | REPEATED | 200000 | 3353,332 | 2956,213 | **1.13** | 1012,117 | **3.31** int | REPEATED | 9000000 | 146262,125 | 134778,736 | **1.09** | 68443,506 | **2.14** --- | --- | --- | --- | --- | --- | --- | --- long | RANDOM | 600 | 13,471 | 8,183 | **1.65** | 8,164 | **1.65** long | RANDOM | 4000 | 236,859 | 207,426 | **1.14** | 82,395 | **2.87** long | RANDOM | 80000 | 6540,856 | 5501,003 | **1.19** | 1781,879 | **3.67** long | RANDOM | 200000 | 17682,776 | 14780,724 | **1.20** | 4603,587 | **3.84** long | RANDOM | 9000000 | 1018221,094 | 891151,325 | **1.14** | 236779,838 | **4.30** long | SHUFFLE | 600 | 7,199 | 5,276 | **1.36** | 5,073 | **1.42** long | SHUFFLE | 4000 | 126,254 | 107,576 | **1.17** | 108,289 | **1.17** long | SHUFFLE | 80000 | 3662,398 | 3098,986 | **1.18** | 1575,289 | **2.32** long | SHUFFLE | 200000 | 9524,346 | 7968,977 | **1.20** | 3966,051 | **2.40** long | SHUFFLE | 9000000 | 598165,450 | 506573,089 | **1.18** | 261645,184 | **2.29** long | STAGGER | 600 | 12,949 | 2,683 | **4.83** | 2,688 | **4.82** long | STAGGER | 4000 | 25,423 | 16,277 | **1.56** | 16,290 | **1.56** long | STAGGER | 80000 | 490,310 | 337,628 | **1.45** | 336,692 | **1.46** long | STAGGER | 200000 | 1360,589 | 857,937 | **1.59** | 861,425 | **1.58** long | STAGGER | 9000000 | 74987,918 | 53333,069 | **1.41** | 53264,202 | **1.41** long | REPEATED | 600 | 3,231 | 2,951 | **1.09** | 2,943 | **1.11** long | REPEATED | 4000 | 42,737 | 43,209 | **0.99** | 31,449 | **1.35** long | REPEATED | 80000 | 1297,210 | 1150,962 | **1.13** | 911,638 | **1.43** long | REPEATED | 200000 | 3317,780 | 3029,899 | **1.10** | 1603,577 | **2.07** long | REPEATED | 9000000 | 150352,962 | 139815,755 | **1.08** | 95671,407 | **1.56** --- | --- | --- | --- | --- | --- | --- | --- float | RANDOM | 600 | 13,792 | 10,263 | **1.34** | 10,350 | **1.33** float | RANDOM | 4000 | 240,136 | 230,278 | **1.04** | 43,074 | **5.57** float | RANDOM | 80000 | 6636,606 | 6082,581 | **1.09** | 975,544 | **6.80** float | RANDOM | 200000 | 17989,489 | 16587,351 | **1.08** | 2483,391 | **7.24** float | RANDOM | 9000000 | 1046216,538 | 1005795,506 | **1.04** | 126501,972 | **8.27** float | SHUFFLE | 600 | 7,610 | 6,361 | **1.20** | 6,398 | **1.19** float | SHUFFLE | 4000 | 132,243 | 126,253 | **1.05** | 124,512 | **1.06** float | SHUFFLE | 80000 | 3809,898 | 3459,021 | **1.10** | 1695,673 | **2.25** float | SHUFFLE | 200000 | 9829,494 | 8987,688 | **1.09** | 4119,919 | **2.39** float | SHUFFLE | 9000000 | 599653,871 | 559650,750 | **1.07** | 198268,823 | **3.02** float | STAGGER | 600 | 14,028 | 3,756 | **3.73** | 3,746 | **3.74** float | STAGGER | 4000 | 30,689 | 22,855 | **1.34** | 22,887 | **1.34** float | STAGGER | 80000 | 642,073 | 421,486 | **1.52** | 422,117 | **1.52** float | STAGGER | 200000 | 5358,068 | 1067,942 | **5.02** | 1068,143 | **5.02** float | STAGGER | 9000000 | 82449,169 | 55431,091 | **1.49** | 55451,913 | **1.49** float | REPEATED | 600 | 4,013 | 3,484 | **1.15** | 3,525 | **1.14** float | REPEATED | 4000 | 58,021 | 55,070 | **1.05** | 41,855 | **1.39** float | REPEATED | 80000 | 1676,518 | 1337,561 | **1.25** | 937,222 | **1.79** float | REPEATED | 200000 | 4162,061 | 3516,324 | **1.18** | 2887,056 | **1.44** float | REPEATED | 9000000 | 185667,725 | 161783,712 | **1.15** | 93453,709 | **1.99** --- | --- | --- | --- | --- | --- | --- | --- double | RANDOM | 600 | 13,905 | 10,361 | **1.34** | 10,399 | **1.34** double | RANDOM | 4000 | 239,623 | 229,005 | **1.05** | 87,059 | **2.75** double | RANDOM | 80000 | 6659,272 | 6172,042 | **1.08** | 1816,963 | **3.67** double | RANDOM | 200000 | 18140,594 | 16583,832 | **1.09** | 4554,564 | **3.98** double | RANDOM | 9000000 | 1054797,756 | 1000809,463 | **1.05** | 254140,032 | **4.15** double | SHUFFLE | 600 | 7,588 | 6,315 | **1.20** | 6,304 | **1.20** double | SHUFFLE | 4000 | 129,775 | 127,084 | **1.02** | 126,470 | **1.03** double | SHUFFLE | 80000 | 3832,478 | 3521,455 | **1.09** | 1849,080 | **2.07** double | SHUFFLE | 200000 | 9758,063 | 8967,440 | **1.09** | 4582,566 | **2.13** double | SHUFFLE | 9000000 | 609630,058 | 568625,042 | **1.07** | 298802,438 | **2.04** double | STAGGER | 600 | 14,046 | 3,873 | **3.63** | 3,869 | **3.63** double | STAGGER | 4000 | 32,938 | 24,368 | **1.35** | 24,357 | **1.35** double | STAGGER | 80000 | 2288,419 | 461,620 | **4.96** | 463,269 | **4.94** double | STAGGER | 200000 | 5636,816 | 1178,850 | **4.78** | 1176,355 | **4.79** double | STAGGER | 9000000 | 262293,757 | 69513,010 | **3.77** | 67053,944 | **3.91** double | REPEATED | 600 | 4,151 | 3,494 | **1.19** | 3,492 | **1.19** double | REPEATED | 4000 | 61,634 | 55,613 | **1.11** | 48,683 | **1.27** double | REPEATED | 80000 | 1688,744 | 1343,116 | **1.26** | 1183,637 | **1.43** double | REPEATED | 200000 | 4161,122 | 3525,212 | **1.18** | 2331,738 | **1.78** double | REPEATED | 9000000 | 191482,029 | 167267,239 | **1.14** | 131170,138 | **1.46** **Parallel sorting** Benchmark | Data type | Array size | Baseline (us/op) | New version (without Radix sort) | Speedup | New version (with Radix sort) | Speedup -- | -- | -- | -- | -- | -- | -- | -- int | RANDOM | 600 | 13,319 | 8,089 | **1.65** | 8,154 | **1.63** int | RANDOM | 4000 | 236,496 | 200,373 | **1.18** | 30,601 | **7.73** int | RANDOM | 80000 | 1720,063 | 1217,247 | **1.41** | 796,993 | **2.16** int | RANDOM | 200000 | 4614,152 | 3020,225 | **1.53** | 1639,152 | **2.81** int | RANDOM | 9000000 | 224521,727 | 165331,757 | **1.36** | 69005,952 | **3.25** int | SHUFFLE | 600 | 6,794 | 5,070 | **1.34** | 4,832 | **1.41** int | SHUFFLE | 4000 | 124,278 | 103,133 | **1.21** | 104,582 | **1.19** int | SHUFFLE | 80000 | 860,773 | 726,829 | **1.18** | 411,839 | **2.09** int | SHUFFLE | 200000 | 1939,088 | 1582,424 | **1.23** | 823,695 | **2.35** int | SHUFFLE | 9000000 | 111383,338 | 89137,428 | **1.25** | 45742,142 | **2.44** int | STAGGER | 600 | 12,491 | 2,403 | **5.20** | 2,406 | **5.19** int | STAGGER | 4000 | 23,863 | 13,539 | **1.76** | 13,515 | **1.77** int | STAGGER | 80000 | 409,297 | 136,846 | **2.99** | 133,108 | **3.07** int | STAGGER | 200000 | 914,279 | 316,801 | **2.89** | 316,958 | **2.88** int | STAGGER | 9000000 | 176705,153 | 18335,358 | **9.64** | 18273,804 | **9.67** int | REPEATED | 600 | 3,350 | 2,983 | **1.12** | 2,883 | **1.16** int | REPEATED | 4000 | 56,213 | 43,094 | **1.30** | 20,943 | **2.68** int | REPEATED | 80000 | 1018,153 | 453,012 | **2.25** | 391,888 | **2.60** int | REPEATED | 200000 | 2771,332 | 886,140 | **3.13** | 847,828 | **3.27** int | REPEATED | 9000000 | 99886,900 | 39350,077 | **2.54** | 35211,147 | **2.84** --- | --- | --- | --- | --- | --- | --- | --- long | RANDOM | 600 | 13,499 | 8,236 | **1.64** | 8,148 | **1.66** long | RANDOM | 4000 | 236,518 | 208,316 | **1.14** | 82,341 | **2.87** long | RANDOM | 80000 | 1810,575 | 1240,150 | **1.46** | 938,703 | **1.93** long | RANDOM | 200000 | 4569,996 | 3138,720 | **1.46** | 2072,958 | **2.20** long | RANDOM | 9000000 | 226784,781 | 175187,713 | **1.29** | 99393,681 | **2.28** long | SHUFFLE | 600 | 7,243 | 5,111 | **1.42** | 5,015 | **1.44** long | SHUFFLE | 4000 | 125,890 | 108,672 | **1.16** | 108,300 | **1.16** long | SHUFFLE | 80000 | 890,325 | 764,561 | **1.16** | 517,099 | **1.72** long | SHUFFLE | 200000 | 2028,086 | 1768,870 | **1.15** | 1061,932 | **1.91** long | SHUFFLE | 9000000 | 124550,381 | 108308,273 | **1.15** | 71402,538 | **1.74** long | STAGGER | 600 | 13,014 | 2,646 | **4.92** | 2,685 | **4.85** long | STAGGER | 4000 | 25,349 | 16,262 | **1.56** | 16,271 | **1.56** long | STAGGER | 80000 | 425,731 | 174,471 | **2.44** | 175,219 | **2.43** long | STAGGER | 200000 | 979,979 | 421,985 | **2.32** | 413,772 | **2.37** long | STAGGER | 9000000 | 54433,382 | 36758,948 | **1.48** | 36698,025 | **1.48** long | REPEATED | 600 | 3,215 | 2,955 | **1.09** | 3,176 | **1.01** long | REPEATED | 4000 | 43,472 | 43,954 | **0.99** | 31,297 | **1.37** long | REPEATED | 80000 | 1019,019 | 474,293 | **2.15** | 435,016 | **2.34** long | REPEATED | 200000 | 2714,928 | 997,382 | **2.72** | 974,558 | **2.79** long | REPEATED | 9000000 | 101091,160 | 55670,843 | **1.82** | 56151,172 | **1.80** --- | --- | --- | --- | --- | --- | --- | --- float | RANDOM | 600 | 13,802 | 10,312 | **1.34** | 8,157 | **1.69** float | RANDOM | 4000 | 241,543 | 229,806 | **1.05** | 30,593 | **7.90** float | RANDOM | 80000 | 1901,615 | 1435,791 | **1.32** | 801,589 | **2.37** float | RANDOM | 200000 | 4789,986 | 3588,751 | **1.33** | 1678,449 | **2.85** float | RANDOM | 9000000 | 229889,608 | 194532,846 | **1.18** | 66263,416 | **3.47** float | SHUFFLE | 600 | 7,578 | 6,343 | **1.19** | 4,862 | **1.56** float | SHUFFLE | 4000 | 132,236 | 124,520 | **1.06** | 105,790 | **1.25** float | SHUFFLE | 80000 | 922,658 | 873,625 | **1.06** | 406,733 | **2.27** float | SHUFFLE | 200000 | 2163,133 | 1994,899 | **1.08** | 858,563 | **2.52** float | SHUFFLE | 9000000 | 119531,496 | 109909,166 | **1.09** | 45541,226 | **2.62** float | STAGGER | 600 | 14,010 | 3,764 | **3.72** | 2,367 | **5.92** float | STAGGER | 4000 | 30,652 | 22,971 | **1.33** | 13,487 | **2.27** float | STAGGER | 80000 | 496,027 | 218,794 | **2.27** | 144,012 | **3.44** float | STAGGER | 200000 | 1184,424 | 551,234 | **2.15** | 346,223 | **3.42** float | STAGGER | 9000000 | 194439,171 | 28023,374 | **6.94** | 18439,387 | **10.54** float | REPEATED | 600 | 3,933 | 3,513 | **1.12** | 2,923 | **1.35** float | REPEATED | 4000 | 58,643 | 53,845 | **1.09** | 20,951 | **2.80** float | REPEATED | 80000 | 1361,219 | 562,814 | **2.42** | 396,504 | **3.43** float | REPEATED | 200000 | 3452,828 | 1196,703 | **2.89** | 882,002 | **3.91** float | REPEATED | 9000000 | 134602,698 | 51215,426 | **2.63** | 34005,216 | **3.96** --- | --- | --- | --- | --- | --- | --- | --- double | RANDOM | 600 | 13,943 | 10,360 | **1.35** | 8,162 | **1.71** double | RANDOM | 4000 | 239,315 | 228,618 | **1.05** | 30,529 | **7.84** double | RANDOM | 80000 | 1912,323 | 1456,531 | **1.31** | 825,296 | **2.32** double | RANDOM | 200000 | 4785,571 | 3636,828 | **1.32** | 1648,155 | **2.90** double | RANDOM | 9000000 | 242439,014 | 198395,212 | **1.22** | 68252,481 | **3.55** double | SHUFFLE | 600 | 7,504 | 6,335 | **1.18** | 4,935 | **1.52** double | SHUFFLE | 4000 | 130,750 | 124,995 | **1.05** | 104,914 | **1.25** double | SHUFFLE | 80000 | 936,946 | 913,924 | **1.03** | 435,434 | **2.15** double | SHUFFLE | 200000 | 2164,084 | 2091,398 | **1.03** | 827,224 | **2.62** double | SHUFFLE | 9000000 | 129994,544 | 122794,145 | **1.06** | 45811,046 | **2.84** double | STAGGER | 600 | 14,057 | 3,867 | **3.64** | 2,370 | **5.93** double | STAGGER | 4000 | 32,988 | 24,557 | **1.34** | 13,494 | **2.44** double | STAGGER | 80000 | 510,162 | 258,892 | **1.97** | 150,340 | **3.39** double | STAGGER | 200000 | 1210,356 | 612,133 | **1.98** | 339,356 | **3.57** double | STAGGER | 9000000 | 72007,670 | 46404,662 | **1.55** | 18312,264 | **3.93** double | REPEATED | 600 | 4,011 | 3,539 | **1.13** | 2,892 | **1.39** double | REPEATED | 4000 | 61,194 | 56,227 | **1.09** | 20,942 | **2.92** double | REPEATED | 80000 | 1366,632 | 589,760 | **2.32** | 404,307 | **3.38** double | REPEATED | 200000 | 3462,930 | 1267,452 | **2.73** | 872,350 | **3.97** double | REPEATED | 9000000 | 136370,558 | 69260,260 | **1.97** | 34424,085 | **3.96** ------------- PR Comment: https://git.openjdk.org/jdk/pull/27411#issuecomment-4897995141
