Closed lqd closed 6 years ago
There are places where the stable sort is def better, because it is a merge sort that looks for sorted runs and if they exist it is better than the pattern defeating quicksort (the unstable implementation). The stable sort has run-time guarantees, which is another mark it its favor. Seems good to me. :)
The hype update :) — numbers on unreleased software:
LocationInsensitive
leapfrog variant goes from 139ms to 127ms
I was testing rayon's parallel sort on Relations when I noticed we were using std's
sort_unstable
even though we (albeit not completely 100% sure why) saw the stable sort perform better. So let's bring it back until we have more measurements/benchmarks :)This locally improves, on
clap
:DatafrogOpt
variant from 5.8s to 5.4sLeapfrog
variant from 4.2s to 4sLocationInsensitive
variant from 800ms to 410ms (this one convinced me to open the PR as a combination of it with leapfrog is likely going to be the way to go)