RFR: JDK-8266431: Dual-Pivot Quicksort improvements (Radix sort) [v16]

Laurent Bourgès lbourges at openjdk.org
Sun Aug 21 20:23:53 UTC 2022


On Tue, 2 Aug 2022 13:57:03 GMT, iaroslavski <duke at openjdk.org> wrote:

>> Sorting:
>> 
>> - adopt radix sort for sequential and parallel sorts on int/long/float/double arrays (almost random and length > 6K)
>> - fix tryMergeRuns() to better handle case when the last run is a single element
>> - minor javadoc and comment changes
>> 
>> Testing:
>> - add new data inputs in tests for sorting
>> - add min/max/infinity values to float/double testing
>> - add tests for radix sort
>
> iaroslavski has updated the pull request incrementally with one additional commit since the last revision:
> 
>   JDK-8266431: Dual-Pivot Quicksort improvements (Radix sort)
>   
>   * Optimized and unified buffer allocation
>   * Minor comment changes

Here are the full results published on my github:

https://github.com/bourgesl/bourgesl.github.io/tree/master/jdk-jmh-arraysort

Tested on latest openjdk/jdk (08.20).

Direct vizualiser:
https://jmh.morethan.io/?sources=https://raw.githubusercontent.com/bourgesl/bourgesl.github.io/master/jdk-jmh-arraysort/full/openjdk20-master-jmh-result.json,https://raw.githubusercontent.com/bourgesl/bourgesl.github.io/master/jdk-jmh-arraysort/full/openjdk20-patched-jmh-result.json

Such visualization is really nice!

I will run tests in microseconds, longer and down-clock my cpu to have more stable results on small array lengths (100-1000).

Laurent

-------------

PR: https://git.openjdk.org/jdk/pull/3938


More information about the core-libs-dev mailing list