TIL that sort.SliceStable performs poorly compare with sort.Slice.
I write a simple benchmark to test this.
I also wonder the performance between using sort.SliceStable and sort.Slice with compare index if elements are equal.
Here is the benchmark result:
goos: darwin
goarch: arm64
pkg: compare-sort-funcs
BenchmarkSortSlice/large_array_small_values-10 459 26184017 ns/op
BenchmarkSortSlice/large_array_large_values-10 240 49681642 ns/op
BenchmarkSortStable/large_array_small_values-10 96 124684752 ns/op
BenchmarkSortStable/large_array_large_values-10 78 154809093 ns/op
BenchmarkSortIndex/large_array_small_values-10 273 43727234 ns/op
BenchmarkSortIndex/large_array_large_values-10 240 49809745 ns/op
PASS
ok compare-sort-funcs 89.851s
sort.SliceStable slower than sort.Slice about 3~4 times.
sort.Slice with index perform near as same as default sort.Slice.