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

Laurent Bourgès lbourges at openjdk.org
Thu May 25 16:39:00 UTC 2023


On Sun, 23 Apr 2023 17:33:38 GMT, Laurent Bourgès <lbourges at openjdk.org> wrote:

>> * improved  mixed insertion sort (makes whole sorting faster)
>> * introduced Radix which sort shows several times boost of performance and has linear complexity instead of n*ln(n)
>> * improved merging sort for almost sorted data
>> * optimized parallel sorting
>> * improved step for pivot candidates and pivot partitioning
>> * extended existing tests
>> * added benchmarking JMH tests
>> * suggested better buffer allocation: if no memory, it is switched to in-place sorting with no OutOfMemoryError, threshold is 1/16th heap
>> 
>> I am going on previous PR by Vladimir Yaroslavskyi: https://github.com/openjdk/jdk/pull/3938
>
> Laurent Bourgès has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains seven additional commits since the last revision:
> 
>  - Merge branch 'openjdk:master' into dpqs23
>  - fixed javadoc and size renamed to length for clarity
>  - improved and more obvious max length test to always respect max heap memory footprint
>  - Merge branch 'openjdk:master' into dpqs23
>  - rewritten radix sort condition + fixed max buffer size
>  - optimized radix sort heuristic
>  - JDK-8266431: Dual-Pivot Quicksort improvements (Radix sort)
>        * Optimized mixed insertion sort
>        * Optimized insertion sort
>        * Optimized Radix sort
>        * Updated microbenchmark

@AlanBateman @rose00 @mbreinhold Could any core-libs reviewer have a look ?
No hurry as jdk21 rdp0 is coming but later in june ?

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

PR Comment: https://git.openjdk.org/jdk/pull/13568#issuecomment-1563199749


More information about the core-libs-dev mailing list