From: Eli Bendersky Date: Mon, 12 Jun 2023 16:05:33 +0000 (-0700) Subject: slices: add benchmark for IsSorted vs. IntsAreSorted X-Git-Tag: go1.21rc1~23 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d9b87d7cc3281a3d3051dfa75e30251f25ee117d;p=gostls13.git slices: add benchmark for IsSorted vs. IntsAreSorted We'd like to mention in a comment that users should prefer slices.IsSorted over sort.IntsAreSorted and similar functions. Create a benchmark that shows this. goos: linux goarch: amd64 pkg: slices cpu: 11th Gen Intel(R) Core(TM) i5-1135G7 @ 2.40GHz BenchmarkIntsAreSorted-8 6031 198315 ns/op BenchmarkIsSorted-8 26580 45801 ns/op Change-Id: I4f14fafd799ecec35c8a5215b74994e972103061 Reviewed-on: https://go-review.googlesource.com/c/go/+/502556 Reviewed-by: Ian Lance Taylor Run-TryBot: Eli Bendersky‎ Reviewed-by: Eli Bendersky TryBot-Result: Gopher Robot --- diff --git a/src/slices/sort_benchmark_test.go b/src/slices/sort_benchmark_test.go index 88eb2385de..edf29994cf 100644 --- a/src/slices/sort_benchmark_test.go +++ b/src/slices/sort_benchmark_test.go @@ -77,6 +77,24 @@ func BenchmarkSlicesSortInts_Reversed(b *testing.B) { } } +func BenchmarkIntsAreSorted(b *testing.B) { + for i := 0; i < b.N; i++ { + b.StopTimer() + ints := makeSortedInts(N) + b.StartTimer() + sort.IntsAreSorted(ints) + } +} + +func BenchmarkIsSorted(b *testing.B) { + for i := 0; i < b.N; i++ { + b.StopTimer() + ints := makeSortedInts(N) + b.StartTimer() + IsSorted(ints) + } +} + // Since we're benchmarking these sorts against each other, make sure that they // generate similar results. func TestIntSorts(t *testing.T) {